Ember.js 在模板中遍历对象
我的一个数据模型具有以下数据结构:Ember.js 在模板中遍历对象,ember.js,Ember.js,我的一个数据模型具有以下数据结构: properties : { .... locator_map : { locator1 : locator_doc_id1, locator2 : locator_doc_id2, ... locatorN : locator_doc_idN, }, ... } 在我的模板中,我想提供指向这些文档的链接,但我不知道如何遍历对象locator\u map。我想在这
properties : {
....
locator_map : {
locator1 : locator_doc_id1,
locator2 : locator_doc_id2,
...
locatorN : locator_doc_idN,
},
...
}
在我的模板中,我想提供指向这些文档的链接,但我不知道如何遍历对象locator\u map
。我想在这些方面做点什么:
{{#each locator in this.properties.locator_map}}
{{#linkTo "locators.show" this.properties.locator_map[locator]}}locator{{/linkTo}}
{{/each}}
但我有两个问题:
this.properties.locator\u map[locator]
不起作用知道如何行走对象吗?这不起作用的原因是,ember框架中的几乎所有内容都是从扩展而来的,但是您的
定位器则不是,因此您有两个选择:
创建一个自定义把手{{{#each}}
帮助程序,用于处理非用户的
解析从后端返回的数据,并将locator\u map
对象转换为的,这将使对象同时具有绑定意识等
我最近回答了一个类似的问题
希望有帮助。正如@直觉像素所建议的,这是我的转换:
// Used to represent a generic key:value mapping
DS.RESTAdapter.registerTransform('dict', {
serialize: function(data) {
var dict = {}, element;
for (var i = 0; i < data.length; i++) {
element = data[i];
dict[element.get('key')] = element.get('value');
}
return dict;
},
deserialize: function(dict) {
var data = Ember.A(), element;
for (var key in dict) {
data.push(Ember.create({ key: key, value: dict[key] }));
}
return data;
}
});
以及模板上的用法:
{{#each locator in this.properties.locator_map}}
{{#linkTo "locators.show" locator.value}}{{locator.key}}{{/linkTo}}
{{/each}}
谢谢,这很有帮助!添加了带有解决方案的答复。
{{#each locator in this.properties.locator_map}}
{{#linkTo "locators.show" locator.value}}{{locator.key}}{{/linkTo}}
{{/each}}