如何在EmberJS中访问ArrayProxy元素? objectAtContent只是解决方案?

时间:2012-09-05 09:47:19

标签: ember.js

如何在EmberJS中访问ArrayProxy元素? objectAtContent只是解决方案吗?

这是一个例子:

App = Ember.Application.create({});

App.my_list = Ember.ArrayProxy.create({
    content: ['dog', 'cat', 'fish']
});

console.log(App.my_list.length); // don't work
console.log(App.my_list.get('length')); // Work
console.log(App.my_list.objectAtContent(0)); // => Work
console.log(App.my_list[0]); // => not work !
console.log(App.my_list.get('0')); // => not work !

http://jsfiddle.net/stephane_klein/2ggrT/2/

祝你好运, 斯蒂芬

2 个答案:

答案 0 :(得分:1)

有多种方法可以访问ArrayProxy元素:

给定my_array ArrayProxy和i所需对象的索引:

  • my_array.get('content.' + i)
  • my_array.objectAt(i)
  • my_array.objectAtContent(i)(这是您应该覆盖以将内容转换为新内容的方法)
  • my_array.get('firstObject')如果你想要第一个对象
  • my_array.get('lastObject')如果你想要最后一个对象
  • my_array.get('content')[i]适用,但您失去了ArrayProxy的好处。

无论如何,我建议你read the ArrayProxy documentation

答案 1 :(得分:0)

App.my_list.get('content.0')也有效。 所以是:content = App.my_list.get('content'); content.get( '0');