Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Knockout.JS';启用';长度约束条件不起作用_Javascript_Knockout.js - Fatal编程技术网

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);