0

我想绑定我的文本输入值

<input type="text" id="2" data-bind="value :  ??whatToWriteHere??    ">

到以下可观察对象中的第二个对象的 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);
4

2 回答 2

2

我有一个基于ko.mapping 插件和为您的目的创建的自定义绑定的解决方案。

你可以在这里看到一个工作小提琴:

http://jsfiddle.net/ingro/MhdZp/

整个想法是映射您的 observableArray,然后使用映射插件的 mappedIndexOf 函数检索与您的输入 id 相关的那个。

于 2012-07-05T09:07:59.520 回答
0

这取决于输入的数据上下文是什么。如果 myObservableArray 中的对象被绑定到模板化输入元素,那么绑定将是“值:名称”。你在使用foreach吗?或者这里只有一个输入元素,您明确想要绑定到第二个数组元素,其中 myObservableArray 只是在页面的某处声明?如果是这样,它将是“值:myObservableArray()[1].name”。

于 2012-07-05T08:27:32.330 回答