Javascript 敲除数组绑定不工作
Javascript 敲除数组绑定不工作,javascript,knockout.js,knockout-2.0,Javascript,Knockout.js,Knockout 2.0,monkeyStuff执行我想要的操作,如果我在输入字段中写入,它会更新span内容。 但是为什么它不能与voteStuff一起工作呢 在行动中看到它: <body> <div id="monkeyStuff"> <input type="text" data-bind="value:monkey" /> <span data-bind="text:monkey"></span> <
monkeyStuff
执行我想要的操作,如果我在输入字段中写入,它会更新span内容。
但是为什么它不能与voteStuff一起工作呢
在行动中看到它:
<body>
<div id="monkeyStuff">
<input type="text" data-bind="value:monkey" />
<span data-bind="text:monkey"></span>
</div>
<hr>
<div id="voteStuff">
<div data-bind="text: test"></div>
<ul data-bind="foreach: voters">
<li>
<input type="text" data-bind="value:name" />
<span data-bind="text:name"></span>
</li>
</ul>
</div>
<script>
var vm = {
monkey: ko.observable()
};
vm.monkey("Quak");
ko.applyBindings(vm, document.getElementById('monkeyStuff'));
var model = {
test: 'Test address text',
voters: ko.observableArray([
{ name: 'First Voter' },
{ name: 'Second Voter' }
])
};
ko.applyBindings(model, document.getElementById('voteStuff') );
</script>
</body>
但是是否有一种方法可以自动为投票者数组中的每个属性执行此操作?您需要使投票者数组中元素的
名称
属性
也可观察,从而允许您使用已实现的绑定更改这些属性:
voters: ko.observableArray([
{ name: ko.observable('First Voter') },
{ name: ko.observable('Second Voter') }
])
工作示例:您正在工作的示例不工作=),但我得到了它。但这个投票器数组仅用于测试,如果我得到一个大数组该怎么办。是否有一种方法可以自动为每个属性执行此操作?对于链接问题,我很抱歉,我不确定如何更新您的代码,然后共享指向更新代码的新链接。尽管如此,在我上面的回答中,它是固定的。您应该创建一些JavaScript对象
Voter
,该对象具有可观察的数据成员名称
。然后,您甚至可以在以后扩展投票者
类以添加功能!但是我从json通过breezejs得到这个数组,数组中有一个名字,没有,地址,还有30多个。。然后我只有客户视图。。难道没有更简单的方法吗?也许每个函数都可以观察数组中的每个属性..?如果要对可观察数组执行的唯一操作是添加/删除项,则不需要将名称
属性设置为可观察属性(仅当投票者名称稍后更改时才需要),否则,如果要在将所有对象推入ObservalArray之前自动转换它们,则可以使用
voters: ko.observableArray([
{ name: ko.observable('First Voter') },
{ name: ko.observable('Second Voter') }
])