首頁  >  問答  >  主體

javascript - 为何给数组增加了双向绑定不能生效

直接上代码
rt 一个个人信息的页面 有名字和孩子两种属性,孩子是个数组,用knockoutjs绑定以后 ,每次点击增加 都会增加一个输入框 ,但是 点击输出按钮的时候控制台答应出来 children 信息 一直是个空数组
,没有随着input框变化

function Person(name.children){
var self = this
            self.name = ko.observable(name);
           self.children =  ko.observableArray(ko.utils.arrayMap(children,function(child){
            return ko.observable(child);
            }));  
    
    self.addChild = function() {
        self.children.push(ko.observable(" "));
    }.bind(self);
     }
  var model = new Person('',[''])  ;
ko.applyBindings(model)
$(".btn").click(function(){
       var tmpDATA =  ko.toJSON(model.emailAddress())
       console.log(tmpDATA);
})
               
     
<p><input data-bind="value:text"></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>
高洛峰高洛峰2767 天前573

全部回覆(1)我來回復

  • 怪我咯

    怪我咯2017-04-11 13:13:41

    第一:$data是不是ko的只是一个普通的js变量,因此你的addChild方法执行,跟本无法添加你输入的值。
    第二:你为什么总是push空的值啊,你应该push你输入的值。

    回覆
    0
  • 取消回覆