javascript - Knockout.JS 'enable' 长度条件绑定(bind)不起作用

标签 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>

错误如下:

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/

相关文章:

javascript - Knockout.js observableArray vs Backbone.js Collection - 有什么区别?

javascript - Knockoutjs 嵌套的 observableArrays

php - 表单验证

javascript - 如何将网格添加到选项卡面板

javascript - AngularJS 中的动态表单字段

jquery - Knockout 3.0 输入选项卡关闭清除值

javascript - 自动播放点导航 jquery setInterval

javascript - 使用 cookie 确定网页是否仍处于打开状态

javascript - KnockoutJS 强制计算的 Observable 重新计算

html - 将 knockout 复选框标签 css-cursor 从指针设置为不允许