3

我有一个如下所示的模型:

  vm.testModel= {
        testProperty:[]
    }

在页面加载之前,使用 ko.track(vm.testModel) 方法跟踪模型。

在运行时单击按钮,我向该模型添加了一些属性,如下所示:

vm.testModel.testProperty.push({ Prop1: null, Prop2: null});

我看到 UI 使用新行进行了更新。

现在,单击另一个按钮时,我正在为属性分配值,但 UI 不会使用属性值更新:

vm.testModel.testProperty[vm.testModel.testProperty.length - 1].Prop1 = 'Test';
4

1 回答 1

2

通过敲除跟踪的数组正在跟踪数组中的哪些项目,而不是数组中项目的属性。

要跟踪单个属性,您需要将它们声明为可观察对象或将它们传递给ko.track

例如

vm.testModel.testProperty.push(ko.track({ Prop1: null, Prop2: null}));
于 2014-12-16T17:09:33.340 回答