我用我的代码做了一个jsfiddle http://jsfiddle.net/dorraba/HuDPJ/ 我想创建一个简单的购物车,可以在其中添加和删除项目。 我的意图是产品将是一个对象(名称和价格) 购物车将包含一个项目列表,其中每个项目都是根据产品和数量构建的。
我的问题是我找不到通过每行下拉列表中选择的产品设置文本框价格的方法。
任何帮助都会很棒。 谢谢。
最佳答案
您应该对输入元素使用值绑定(bind),否则您将收到 DOM 错误。
此外,您已将选项绑定(bind)的 optionsValue
属性设置为 'Name'
,这将导致 knockout 将 ShoppingCartItem.Product
的值设置为产品名称。
如果父项(在本例中为 Price
)计算结果为未定义,则绑定(bind)到 Product.Price
等嵌套属性将导致错误。
因此,您需要测试 Product 是否已定义...如下所示: data-bind="value: (Product() ? Product().Price : '')"
这是您的 jsfiddle 的工作解决方案:http://jsfiddle.net/HuDPJ/1/
关于javascript - knockout 复杂变量不绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10070280/