javascript - 模型属性更新时 UI 不更新,由 knockout ES5 跟踪

标签 javascript knockout.js viewmodel knockout-es5-plugin

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

  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/

相关文章:

javascript - 尝试将我的应用程序发布到 Heroku 上时出现错误 :"No ' Access-Control-Allow-Origin' header 出现在请求的资源上”

Knockout.js 复杂对象绑定(bind)结果为空 HTML 输出

android - 如何使用新的系统架构ViewModel/LiveData with cursorAdapter?

javascript - 如何将视频放入 Canvas ?

javascript - HIghcharts.js addseries 不起作用?

javascript - 更改Highchart堆积柱形图的样式

javascript - 重复克隆一组节点的最快方法

c# - MVC knockout 数据绑定(bind)

xaml - 如何使用INavigationAware后退按钮将参数传递到上一页

android - 房间数据库 Livedata getValue() 返回 null