Javascript 以变量作为键设置嵌套模型属性
我正在使用DeepModel访问Backbone.js模型中的嵌套属性。所以这很好: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
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允许我使用您的第一个解决方案。谢谢你的解释!