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

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

最佳答案

剔除跟踪的数组用于跟踪数组中的项目,而不是数组中项目的属性。

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

例如

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

09-28 14:48