所有数据显示和添加/删除按钮似乎都有效,直到我更改删除按钮以进行检查以确保屏幕上始终至少有一个人:
<!-- Check number of items before enabling delete button !-->
<button type="button" data-bind='enable: people().length > 1, click: $root.removePerson'>Delete</button>
错误如下:
Uncaught ReferenceError :无法处理绑定(bind)“foreach: function (){return people }”
消息:无法处理绑定(bind)“enable: function (){return people().length > 1 }”
消息:人没有被定义
HTML
<div data-bind='foreach: people'>
<div class="personWell">
<input type="text" data-bind="value: name"></input>
<input type="text" data-bind="value: company"></input>
<button type="button" class="btn btn-sm btn-warning" data-bind='click: $root.removePerson'>Delete</button>
</div>
</div>
<button type="button" class="btn btn-sm btn-primary" data-bind='click:addPerson'>Add Person</button>
JavaScript
var ObservedPersonModel = function(people) {
var self = this;
self.people = ko.observableArray(people);
self.addPerson = function() {
self.people.push({
person_id:"",
name: "",
company: "",
positive_observation_id:""
});
};
self.removePerson = function(person) {
self.people.remove(person);
};
};
//originalPeopleObserved is a JSON encoded list of objects
var peopleViewModel = new ObservedPersonModel(originalPeopleObserved);
ko.applyBindings(peopleViewModel);
资源
以下是我了解此功能的一些链接:
最佳答案
试试这个:
<button type="button" data-bind='enable: $root.people().length > 1, click: $root.removePerson'>Delete</button>
关于javascript - Knockout.JS 'enable' 长度条件绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29501265/