0

开始了解 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 取决于餐点名称,但如果我直接作为餐 点 ().mealName 给出它不工作出了什么问题,任何人都可以帮助我

4

1 回答 1

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 }
];    

值绑定是您设置选择元素的选定值的位置。膳食名称不是可观察的属性,因此它会中断。

于 2013-09-17T14:05:30.713 回答