1
我的JSON調用返回一個對象數組:困惑視圖模型的創建,我需要添加一個計算字段
[
{
Table: 1,
FirstName: "Bert",
LastName: "Smith",
Place: 1
},
{
Table: 1,
FirstName: "Suzanne",
LastName: "Smith",
Place: 2
},
{
Table: 1,
FirstName: "Matthew",
LastName: "Stewart",
Place: 3
},
{
Table: 1,
FirstName: "Brian",
LastName: "Robinson",
Place: 4
},
{
Table: 1,
FirstName: "Jennifer",
LastName: "Robinson",
Place: 5
},
{
Table: 1,
FirstName: "Andrew",
LastName: "Caygill",
Place: 6
},
{
Table: 1,
FirstName: "Susan",
LastName: "Caygill",
Place: 7
},
{
Table: 1,
FirstName: "John",
LastName: "Spreadbury",
Place: 8
},
{
Table: 1,
FirstName: "Anne-Marie",
LastName: "Nevin",
Place: 9
}]
我在我的HTML模板:
<script type="text/html" id="dataLine">
<div class="itemLine">
<div class="Name">
<span class="fixtureBoxLine" data-bind="text: fullName"></span>
</div>
<div class="TableNo">
<span class="fixtureBoxLine" data-bind="text: Table"></span>
</div>
</div>
</script>
,並且綁定是:
<div data-bind="template: { name: 'dataLine', foreach: pageCol1 }"></div>
我的視圖模型爲:
var viewModel = {
fields: ko.observableArray([]),
pageSize: ko.observable(1),
pageIndex: ko.observable(0)
};
viewModel.pageCol1 = ko.computed(function() {
var size = Number(this.pageSize());
var start = this.pageIndex() * size * 2; //2 cols per page
var end = start + size;
return this.fields.slice(start, end);
}, viewModel);
除了我無法獲得「全名」屬性外,所有工作都正常。如果我嘗試將它添加到視圖模型以同樣的方式,因爲我上面「pageCol1」沒有,然後我的JSON成功財產少了點:
viewModel.fields(xlData);
這是行不通的,因爲沒有「全名」屬性關於返回的數據。
我覺得我已經嘗試過所有可能的組合,現在讓我頭疼!請有人指出我在正確的方向?
謝謝!
謝謝。我很欣賞它*可以這樣做,但我真的很感激知道如何擴展我的viewmodel/javascript來做到這一點,如果可能的話? – TheMook 2013-04-08 19:32:09