Javascript Knockout.JS';启用';长度约束条件不起作用
所有数据显示和添加/删除按钮似乎都能工作,直到我更改删除按钮以进行检查,以确保屏幕上始终至少有一个人:Javascript Knockout.JS';启用';长度约束条件不起作用,javascript,knockout.js,Javascript,Knockout.js,所有数据显示和添加/删除按钮似乎都能工作,直到我更改删除按钮以进行检查,以确保屏幕上始终至少有一个人: <!-- Check number of items before enabling delete button !--> <button type="button" data-bind='enable: people().length > 1, click: $root.removePerson'>Delete</button> JavaScri
<!-- Check number of items before enabling delete button !-->
<button type="button" data-bind='enable: people().length > 1, click: $root.removePerson'>Delete</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>
删除
事实上我把你的代码弄得乱七八糟。我更改的第一件事是您在html代码中忘记了两个
:
<input type="text" data-bind="value: name"></input>
<input type="text" data-bind="value: company"></input>
在Safari上,我可以按预期使用您的样品。
试试这个因为您在
foreach
绑定中,所以您需要绑定到$root.people()
,而不仅仅是people()
。这非常有效。我相信我在这个过程中尝试了一些变化,但不是那个确切的变化。谢谢谢谢你指出这一点。泰勒·史密斯的解决方案对我有效。
<input type="text" data-bind="value: name"></input>
<input type="text" data-bind="value: company"></input>
originalPeopleObserved = null;
var peopleViewModel = new ObservedPersonModel(originalPeopleObserved);
ko.applyBindings(peopleViewModel);