더 복잡한 시나리오에서는 여러 가지 이유로 뷰 모델이 바람직합니다. 디스플레이 또는이 경우 템플릿 처리에 더 적합한 방식으로 모델의 데이터를 나타냅니다.
보기 모델을 사용하는 경우 목표를 촉진하는 방식으로 목록을 쉽게 나타낼 수 있습니다.
모델:
{
name: "Richard",
numbers: [1, 2, 3]
}
모델보기 :
{
name: "Richard",
numbers: [
{ first: true, last: false, value: 1 },
{ first: false, last: false, value: 2 },
{ first: false, last: true, value: 3 }
]
}
두 번째 목록 표현은 입력하기가 끔찍하지만 코드에서 만드는 것은 매우 간단합니다. 뷰 모델에 모델을 매핑하는 동안, 당신이 필요로하는 모든 목록을 대체 first하고 last이 표현에 대한합니다.
function annotatedList(values) {
let result = []
for (let index = 0; index < values.length; ++index) {
result.push({
first: index == 0,
last: index == values.length - 1,
value: values[index]
})
}
return result
}
제한되지 않은 목록의 경우 , 그 중 하나가 후행 쉼표를 피하는 데 충분하므로 설정 first및 생략 만 가능 last합니다.
사용 first:
{{#numbers}}{{^first}}, {{/first}}{{value}}{{/numbers}}
사용 last:
{{#numbers}}{{value}}{{^last}}, {{/last}}{{/numbers}}