我有一个如下所示的模型:
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';
最佳答案
knockout 跟踪的数组跟踪的是数组中有哪些项,而不是数组中项的属性。
要跟踪单个属性,您需要将它们声明为可观察对象或通过 ko.track
传递它们
例如
vm.testModel.testProperty.push(ko.track({ Prop1: null, Prop2: null}));
关于javascript - 模型属性更新时 UI 不更新,由 knockout ES5 跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27509948/