添加项目以淘汰视图模型,不会更新视图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加项目以淘汰视图模型,不会更新视图相关的知识,希望对你有一定的参考价值。

我有一个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');
        }
答案

以下代码段将使您的inventoryItems可观察

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

以上是关于添加项目以淘汰视图模型,不会更新视图的主要内容,如果未能解决你的问题,请参考以下文章

杜兰达尔/淘汰赛。更新其他视图/视图模型

我可以以编程方式触发淘汰视图模型更新吗?

模型更改时视图中的列表不会更新

从不同视图添加新项目时,SwiftUI ObservedObject 不会更新

淘汰赛仅更新部分视图模型

ajax发布后淘汰js更新视图模型