在JSViews中使用名称中的点访问/设置Observer属性

我相信标题和我简化的jsFiddle示例解释了我的困境。

基本上我正在处理一个包含文件夹和文件的极大且多维的观察者对象,所有这些对象都有动态属性名称。

当使用Observer setProperty()函数时,我很难找到一种方法来使用名称中带有点的属性,例如“ file.png ”。 这显然是因为当完整停止出现在set属性路径中时,JSViews认为它是对象树中的更深层次。

又名:

path.fileWithoutExt.attrs = Works。

path.fileWithExt.png.attrs =失败。

所以我的问题是“ 有没有办法实现属性设置,或者是不可能或function请求? ”它可能是这样的:

 root.path.[file.dot].more 

要么:

 root.path.{{file.dot}}.more 

您不能传递像"object['keyName'].foo"这样的路径作为setProperty第一个参数。 (该参数确实只需要点分隔的路径)。

但你不需要。 只需将实际对象传递给$.views.observable(...)然后您只需要将叶属性名称传递给setProperty

 $.observable( files.images[n] ).setProperty( 'modified', 'Modified!' ); $.observable( files.images[n] ).setProperty( 'alias', a ); 

更新了jsfiddle :所有三个工作……

path["fileWithExt.png"].attrs = Works。