knockout 怎么监控数组元素的变化

RT 在input里面输入值,可以改变name 但是不能改变数组的 内容

$(function () {
    var person = function(name, children) {
        this.name = name;
        this.children = ko.observableArray(ko.utils.arrayMap(children,function (item) {
            return ko.observable(item)
        }));

        this.addChild = function() {
            this.children.push(" ");
        }.bind(this);
    }

    var model =new person('',[''])

    ko.applyBindings(model);

    $(".btn").click(function () {
        var tmpdata = ko.toJSON(model)
        console.log(tmpdata)
    });
})

<div><input type="text" data-bind="value:name"></div>
<ul data-bind="foreach:children">
    <li><input type="text" data-bind="value:$data"></li><button data-bind="click:$root.addChild">新增</button>

</ul>
<button class="btn">输出数据</button>
阅读 4.8k
1 个回答

可以用ko.observableArray()来监听数组的变化

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题