我想绑定我的文字输入值
<input type="text" id="2" data-bind="value : ??whatToWriteHere?? ">
到以下observable对象中的第二个对象的name属性(其中input.id == object.id)
myObject = {
myArray : [ { id:1, name:'one' },{ id:2, name:'two' },{ id:3, name:'three' } ]
},
myObservableObject = ko.observable(myObject);
用什么表达式替换?whatToWriteHere ??
编辑:实际上数组不一定是在另一个对象中
myArray : [ { id:1, name:'one' },{ id:2, name:'two' },{ id:3, name:'three' } ]
myObservableArray = ko.observableArray(myArray);
答案 0 :(得分:2)
我有一个基于ko.mapping plugin 的解决方案和为您的目的创建的自定义绑定。
你可以在这里看到一个工作小提琴:
http://jsfiddle.net/ingro/MhdZp/
整个想法是映射你的observableArray,然后使用映射插件的mappedIndexOf函数检索绑定到你的输入id的那个。
答案 1 :(得分:0)
这取决于输入的数据上下文。如果myObservableArray中的对象绑定到模板化输入元素,则绑定将为“value:name”。你在使用foreach吗?或者只有一个输入元素,您明确要绑定到第二个数组元素,其中myObservableArray只是在页面中的某处声明?如果是这样,那就是“value:myObservableArray()[1] .name”。