【发布时间】:2019-03-27 15:00:11
【问题描述】:
给定使用此数据实例化的已编译视图模型层次结构:
"applications":[
{
"application_id":1,
"name":"Test Application 1",
"description":"An Application For Testing",
"settings":[
{
"name":"Application 1 Setting Key 1",
"value":"Application 1 Setting Value 1"
}
],
"projects":[
{
"project_id":1,
"name":"Test Project 1",
"description":"A project for testing 1",
"settings":[
{
"name":"Project 1 Setting Key 1",
"value":"Project 1 Setting Value 1"
}
]
}
]
}
]
我很难在树中更远的层次上挖掘 observables。
观察应用程序属性的变化没有问题:
$.observe(data.applications(), ".[]^*", ...
但是如何更改应用程序下的设置属性呢?这些都是失败的:
$.observe(data.applications().settings(), ".[]^*", ...
$.observe(data.applications(), ".settings.[]^*", ...
$.observe(data.applications(), ".settings().[]^*", ...
我看到文档特别提到括号不会像上一个示例那样在链式路径中起作用,因此对最后一个没有太大希望。
我似乎能够摆脱这个:
$.observe(data.applications(), ".[]._settings.[]^*", ...
如果这是唯一的方法,请确认,但下划线让我觉得我已经利用了数据路径的底层/受保护/非官方表示。还有其他方法可以链接已编译的 vm 路径吗?
【问题讨论】:
标签: jsviews