2014-02-14 90 views
0

我有一個json對象列表,我想使用ko映射插件映射到knockout viewmodel列表。以下是我的代碼(只是爲了解釋我的問題,沒有必要採取這種代碼嚴肅):爲什麼這個挖空映射代碼不起作用?

var itemsList = [ 
    { Id: 1, Name: 'A' }, 
    { Id: 2, Name: 'B' }, 
    { Id: 3, Name: 'C' } 
]; 

var item = function(data) { 
    ko.mapping.fromJS(data, {}, this); 
} 

var listOfItems = ko.observableArray(); 

var listOfItems = ko.mapping.fromJS(itemsList, { 
    create: function(options) { 
     return new item(options.data); 
    } 
}); 

現在我LISTOFITEMS總是空的,爲什麼?

+0

您的代碼看起來沒問題。你可以讓一個[小提琴](http://jsfiddle.net/)重現你的問題? –

回答

0

你真的可以簡化這個代碼,它會變得很好。

var itemsList = [{ Id: 1, Name: 'A' }, { Id: 2, Name: 'B' }, { Id: 3, Name: 'C' }]; 
var viewModel = { 
    listOfItems: ko.mapping.fromJS(itemsList) 
} 
ko.applyBindings(viewModel); 

現在你有視圖模型與observableArray listOfItems,這個陣列中的所有項目都IdName性能。
您可以使用以下代碼進行測試:

<ul data-bind="foreach: listOfItems"> 
    <li> 
     <span data-bind="text: Id"></span> 
     <span data-bind="text: Name"></span> 
    </li> 
</ul> 
相關問題