添加项目以删除视图模型,而不是更新视图

时间:2018-08-30 08:37:50

标签: javascript mvvm knockout.js

我有一个ViewModel,可以绑定到视图列表项。

var MyViewModel = function() {
    var self = this;

    self.addItems = function(vm) {
        vm.inventoryItems.push('New Item');
    }
};

var myVM= new MyViewModel();
ko.applyBindings(myVM);

视图模型具有一个名为inventoryItems的属性(来自服务)。

我希望使用来查看,

<ul data-bind="foreach:inventoryItems">
    <li>
        <input class="form-control" type="text" data-bind="value: $data" />
    </li>
</ul>
<div class="text-right">
    <a data-bind="click: $parent.addItems">+ Add more</a>
</div>

现在,集合inventoryItems中已经存在的项目会变得很好。

当我使用添加新项目时,可以看到通过控制台添加的项目,但是视图没有得到更新!

self.addItems = function(vm) {
            vm.inventoryItems.push('New Item');
        }

1 个答案:

答案 0 :(得分:2)

下面的代码段将使您的stockingItems可见

    var MyViewModel = function () {
    var self = this;

    self.inventoryItems = ko.observableArray();

    self.addItems = function (vm) {
        vm.inventories.push('New Item');
        self.inventoryItems(vm.inventories);
      }
  };
var myVM = new MyViewModel();
ko.applyBindings(myVM);