我正在尝试将数组的第一个元素绑定到div但它却失败了。为什么约翰不会出现在div中?
<div data-bind="text: seedData[0].firstName"></div>
<select data-bind="options: seedData,
optionsText: 'firstName',
optionsValue: 'ID',
value: data.selectedValue">
</select>
var vm = {
// Simulated seed data from server
seedData: ko.observableArray([
{
ID: 1,
firstName: 'John',
value: '333'
},
{
ID: 2,
firstName: 'Bob',
value: '333'
},
{
ID: 3,
firstName: 'Amy',
value: '333'
}]),
// Simulated data from server
data: {
title: ko.observable('This is a sample'),
selectedValue: ko.observable(2)
}
};
ko.applyBindings(vm);
答案 0 :(得分:9)
由于您正在访问observable的值,您必须记住它是一个函数。当绑定到一个observable(而不是它的子属性)时,你可以省去这个函数,Knockout会为你做。但是在访问索引时,您必须使用该函数。
所以使用:
<div data-bind="text: seedData()[0].firstName"></div>
<select data-bind="options: seedData,
optionsText: 'firstName',
optionsValue: 'ID',
value: data.selectedValue">
</select>