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

查看:67
本文介绍了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)
    });
})


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

解决方案

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

这篇关于javascript - knockout 怎么监控数组元素的变化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆