2015-10-05 58 views
0

我正在看另一个问题(Knockout.js how to access the inner object property on data-bind),并看到如何绑定对象内的属性。我不知道如何从多个对象属性的数组中的绑定,并认为这将是对答案的快速的调整:敲除 - 访问对象数组中的属性

var data = [ 
    { 
     "Id" : 1001, 
     "SalePrice" : 12345, 
     "ListPrice" : 333, 
     "ShortDesc" : "Tayler 12345E", 
     "Description" : " Long Description" 
    }, 
    { 
     "Id" : 1002, 
     "SalePrice" : 23456, 
     "ListPrice" : 444, 
     "ShortDesc" : "Tayler 23456F", 
     "Description" : " Long Description" 
    } 
]; 

var viewModel={ 
    dataTest: ko.observable(data) 
}; 

ko.applyBindings(viewModel); 

<div data-bind="foreach: dataTest"> 
    <span data-bind="text: dataTest().SalePrice"></span> 
</div> 

我得到一个错误,指出dataTest没有定义,但我可以”不知道为什么会发生这种情况。有人可以看看,让我知道我要去哪里错了吗?

修订这里小提琴:http://jsfiddle.net/nimaek/sZYcn/132/

+1

你不需要'foreach'内的'数据测试()'预选赛 - 它应该只是说:'期间数据绑定=“TEXT:SalePrice”'' –

+1

如果_do_仍需要直接引用当前项目,您可以使用'$ data',如'data-bind =“text:$ data.SalePrice”'。如果您需要将它传递给另一个函数等,则更常见 –

回答

2

你在里面结合foreach。使用

<span data-bind="text: SalePrice"></span>