使用knockout在数组中添加动态元素

时间:2016-02-10 07:22:26

标签: jquery knockout.js

我正在尝试在observableArray中添加元素但是在这里我遇到了新添加的元素替换最后元素的问题。

var bugTracker = function() {
  var self = this;
  self.bugName = ko.observable(''),
    self.bugList = ko.observableArray([
      {name:"Abc",age:27},{name:"Dooo",age:27},{name:"Usss",age:27},{name:"Yeess",age:27}
    ])
  self.addBug = function() {
    var newBug = {
      name: self.bugName,
      age: 86
    }
    self.bugList.push({
      name: self.bugName,
      age: 89
    });
  }
  self.removeBug = function() {
    self.bugList.remove(this);
  }
}
bugTracker.bugList
$(function() {
  ko.applyBindings(new bugTracker());
});

HTML:

<input type="text" data-bind="value : bugName" >
<input type="button" data-bind="click: addBug" value="Add Bug"/>
<ol data-bind="foreach : bugList">
    <li data-bind="text : name" >
    </li>
</ol>

输出:

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要调用CalendarView作为获取当前值的函数,并且您可以放弃bugName的双重创建,因此:

newBug

请参阅this working jsfiddle