我无法通过模板中的索引访问EmberArray。这是我路线的一部分
model(){
return RSVP.hash({
games: this.store.findAll('game')
})
}
这是模板的一部分
<div>
First game: {{model.games.[0].name}}
</div>
呈现无输出。虽然如果我使用
迭代它{{#each model.games as |game|}}
<div>{{game.name}}</div>
{{/each}}
这很好用。知道我可能做错了什么,或者我应该做些什么不同?
由于
答案 0 :(得分:2)
如果您不想迭代所有项目,并且如果您不介意在模板中明确地编写一些逻辑,here插件可能会很有用,例如访问一个具体的项目使用ember-composable-helpers给出数组,来自docs:
返回数组给定索引处的对象。
符号:
{{object-at index array}}
(如果你想显示第二个项目的名称)将是:
{{object-at 1 model.games}}
答案 1 :(得分:1)
您可以使用firstObject方法。
{{model.games.firstObject.name}}
答案 2 :(得分:1)
您可以创建帮助程序。像这样:
// app/helpers/array-index.js
import Ember from 'ember';
export default Ember.Helper.helper(function ([array, index]) {
return array !== undefined && array[index] !== undefined ? array[index] : undefined;
});
与get:
一起使用{{get (array-index model.games 1) 'name'}}
P.S。当我们谈论从Ember Data返回的集合时,那可能不是纯粹的js数组,而是ArrayProxy之类的东西。在这种情况下,您可能需要使用它的方法objectAt
:
// app/helpers/array-index.js
import Ember from 'ember';
export default Ember.Helper.helper(function ([array, index]) {
return array && array.objectAt ? array.objectAt(index) : (array && array[index]);
});