为什么我只能访问HTML的<input>
的observableArray元素的一个(即'member_A'
)属性。如何在不使用foreach的情况下访问动态更新的knockout observableArray的特定元素
我想按钮"ADD To List of abc"
的点击添加新的ABC()对象为observableArray "list_of_abc"
并显示最近添加对象的属性(即是member_A
和member_B
)在input
盒。 我的代码确实将新的abc()对象添加到observableArray "list_of_abc"
,但我无法在HTML
的input
框中显示新添加的对象的成员(即"member_A"
和"member_B"
)。
视图模型
function abc(var1,var2)
{
this.member_A = ko.observable(var1);
this.member_B = ko.observable(var2);
}
function Home()
{
this.list_of_abc = ko.observableArray();
this.last_added_index = ko.observable();
this.addTolist_of_abc = function()
{
var len = this.list_of_abc().length;
this.last_added_index(len);
this.list_of_abc.push(new abc("Element"+len,len));
};
}
ko.applyBindings(new Home());
HTML
<div>
<button data-bind = "click: addTolist_of_abc">ADD To list_of_abc</button>
</div>
<p>Last Added abc's object</p> <br>
member_A's value: <input data-bind="value: list_of_abc()[$root.last_added_index()].member_A" /> <br>
member_B's value: <input data-bind="value: list_of_abc()[$root.last_added_index()].member_B" />
输出 http://jsfiddle.net/himanshudhiman/3r0g0wak/1/
在输出,我在输入波只得到第一可变 'member_A' X。 第二个输入框为空白。 此外,我必须点击“添加到abc列表”按钮两次以获取member_A在输入框中显示。
我想访问和修改特定对象ABC形式list_of_abc observableArray,我怎么能做到这一点与给定的数字作为observableArray指数。
那么有什么办法直接通过使用它们的索引来访问observableArray的元素,而不是通过将foreach放在observableArray上来循环整个数组。
谢谢。
罗伊,我已经编辑我的职务,以清除我究竟想要的目的。请看看更改后的帖子 –
@HimanshuDhiman我已经更新了我的答案。看看我如何绑定编辑输入。 –