搜索

首页  >  问答  >  正文

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

<p><input type="text" data-bind="value:name"></p>
<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>
阿神阿神2896 天前345

全部回复(1)我来回复

  • 阿神

    阿神2017-04-10 17:39:50

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

    回复
    0
  • 取消回复