开始了解Knockout,我在下面的链接中看到了一些教程 http://learn.knockoutjs.com/#/?tutorial=collections
我在页面上有以下代码
<tbody data-bind="foreach: seats">
<tr>
<td><input data-bind="value: name" /></td>
<td><select data-bind="options: $root.availableMeals, value: meal, optionsText: 'mealName'"></select></td>
<td data-bind="text: formattedPrice"></td>
</tr>
</tbody>
如果我像这样更改上面的代码
<tbody data-bind="foreach: seats">
<tr>
<td><input data-bind="value: name" /></td>
<td><select data-bind="options: $root.availableMeals, value: meal().mealName, optionsText: 'mealName'"></select></td>
<td data-bind="text: formattedPrice"></td>
</tr>
</tbody>
如果我在第3步(共5步)中更改为值:meal()。mealName 的值,它将无法正常工作,并且我没有正确使用输出。 附加费 ID取决于用餐名称,但如果我直接给出 meal()。mealName ,那么它出错并且可以帮助我
答案 0 :(得分:1)
您不能将不可编辑字段'mealName'设置为代码中的值,它在教程中说明 -
// Non-editable catalog data - would come from the server
self.availableMeals = [
{ mealName: "Standard (sandwich)", price: 0 },
{ mealName: "Premium (lobster)", price: 34.95 },
{ mealName: "Ultimate (whole zebra)", price: 290 }
];
值绑定是您设置select元素的选定值应该是什么的位置。膳食名称不是可观察的财产,因此它会中断。