Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以变量作为键设置嵌套模型属性_Javascript_Backbone.js - Fatal编程技术网

Javascript 以变量作为键设置嵌套模型属性

Javascript 以变量作为键设置嵌套模型属性,javascript,backbone.js,Javascript,Backbone.js,我正在使用DeepModel访问Backbone.js模型中的嵌套属性。所以这很好: this.model.set({'chart_configs.mentions_bar_graph.date': "cats"}); 但是,我想使用一个变量作为键的一部分,例如: this.model.set({'chart_configs.'+ this.chartName + '.date': "cats"}); 这是怎么可能的?我知道我可以用自己的力量做到这一点 this.model.attribut

我正在使用DeepModel访问Backbone.js模型中的嵌套属性。所以这很好:

this.model.set({'chart_configs.mentions_bar_graph.date': "cats"});
但是,我想使用一个变量作为键的一部分,例如:

this.model.set({'chart_configs.'+ this.chartName + '.date': "cats"});
这是怎么可能的?我知道我可以用自己的力量做到这一点

this.model.attributes.chart_configs["mentions_bar_graph"].date = "cats";
但这显然不会在我的代码中的其他地方触发“更改”事件

谢谢

可以通过两种方式调用:

m.set('key', 'value');
m.set(an_object_of_keys_and_values);
因此,通过使用第一种形式的
Model#set
,您应该能够克服“无法定义那样的对象文字”问题:

this.model.set('chart_configs.' + this.chartName + '.date', 'cats');
如果DeepModel不喜欢这一点,那么您可以做得很长:

var values = { };
values['chart_configs.' + this.chartName + '.date'] = 'cats';
this.model.set(values);

一个对象就是一个对象,不管它是否有名称,而且
set
只关心键和值。

这里是用于mu的代码,说明太短了。看起来deepmodel允许我使用您的第一个解决方案。谢谢你的解释!