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

时间:2014-05-12 11:51:14

标签: javascript jquery jsviews

我相信标题&我简化的jsFiddle Example解释了我的困境。

基本上我正在处理一个非常大的&包含文件夹的多维观察者对象&所有文件都有动态属性名称。

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

又名:

path.fileWithoutExt.attrs =工作。

path.fileWithExt.png.attrs =失败。

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

root.path.[file.dot].more

或:

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

2 个答案:

答案 0 :(得分:0)

path["fileWithExt.png"].attrs =工作。

答案 1 :(得分:0)

您无法将"object['keyName'].foo"之类的路径作为setProperty的第一个参数传递。 (该参数确实只需要以点分隔的路径)。

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

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

Updated jsfiddle:这三项都有效......