我试图让这段代码在ember中工作,但它一直在给我
“Uncaught TypeError:Object#没有方法'get'”在线
this.get('element_id')[item.id] = true;
为什么不能访问element_id哈希?
function() {
return Ember.ArrayProxy.extend({
box: null,
content: [],
element_id: {},
init: function() {
this._super();
var items = this.get( 'box' ).getData();
if ( items.get( 'length' ) ) {
this.set( '[]', items );
};
// Initialize the hash
items.forEach(function(item) {
this.get('element_id')[item.id] = true;
});
}
});
}
);
答案 0 :(得分:3)
使用forEach方法时,您可以在上下文中传递将设置为this
的目标对象,如文档中所述:
请注意,除了回调之外,您还可以传递将在上下文中设置为“this”的可选目标对象。这是让迭代器函数访问当前对象的好方法。
所以你的代码现在应该是:
items.forEach(function(item) {
this.get('element_id')[item.id] = true;
}, this);