javascript - 为何给数组增加了双向绑定不能生效
高洛峰
高洛峰 2017-04-11 13:11:41
0
1
575

直接上代码
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>
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

Antworte allen(1)
刘奇

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage