Javascript 在ember模板中使用数组表示法获取对象属性
只是尝试一下,但不知道怎么做 场景:-我试图呈现一个包含配置数据和视图数据的页面,因此基本上我的模板在配置数据上循环以呈现页面,并从视图数据中获取值以显示 所以我的模型有点像Javascript 在ember模板中使用数组表示法获取对象属性,javascript,ember.js,handlebars.js,Javascript,Ember.js,Handlebars.js,只是尝试一下,但不知道怎么做 场景:-我试图呈现一个包含配置数据和视图数据的页面,因此基本上我的模板在配置数据上循环以呈现页面,并从视图数据中获取值以显示 所以我的模型有点像 model:{'confData':[{'displayName':'value1','fieldName':'Field1'}, {repeat similar object} ], 'viewData':{'Field1':
model:{'confData':[{'displayName':'value1','fieldName':'Field1'},
{repeat similar object}
],
'viewData':{'Field1':'value1','Field2':'value2',....}
}
现在,在模板中,我尝试渲染如下:
{{#each confData}}
this.displayName {{input type='text' value=viewData[this.fieldName] }}
{{/each}}
但它不接受。任何关于我如何处理这类问题的建议
PS:实际应用中的confdata和view数据将是api调用,我不能更改。
我看到了这样的事情,但当我试图改变,因为它失败了
谢谢。单靠车把是无法满足您的需求的。请记住,车把模板没有逻辑,仅用于演示。我的建议是在控制器中设置一个计算属性:
data: function() {
var confData = this.get('confData');
var viewData = this.get('viewData');
return confData.map(function(data) {
return {
displayName: data.displayName,
value: viewData[data.filedName]
};
});
}.property('confData.[]', 'viewData')
然后在模板中:
{{#each data}}
{{displayName}} {{input type='text' value=value}}
{{/each}}
你不能在模板中使用
这个
。@CodeJack,但我用过了,它成功了。下面是经过修改的示例@CodeJack这个
肯定可以在模板中使用。不过,它并不像在JS中那样引用相同的东西。在模板中,它指的是当前上下文(可以使用块帮助器进行更改)。^是的,这就是我的意思。。