代码之家  ›  专栏  ›  技术社区  ›  Simsons

将项添加到取消视图模型中,不会更新视图

  •  0
  • Simsons  · 技术社区  · 6 年前

    我有一个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>
    

    现在,已经在收藏中的物品, 库存项目 正在变得很好。

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

    self.addItems = function(vm) {
                vm.inventoryItems.push('New Item');
            }
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   user2932057    6 年前

    下面的代码片段将使您的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);