0

我目前使用 Ember Data 和本地存储适配器设置了以下模型。

App.Game = DS.Model.extend
 stage: DS.attr('number')
 level: DS.attr('number')
 actions: DS.hasMany('App.Action')

App.Action = DS.Model.extend
 type: DS.attr('string')
 time: DS.attr('number')
 game: DS.belongsTo('App.Game')

我可以使用从模板中访问每个操作

{{#each actions}}
 {{type}}
{{/each}}

但我想从控制器内访问同样的数据。

有什么可以做的吗?

以下返回动作长度,但我想对每个动作进行 forEach 。

actionsLength: (->
 @get('actions').get('length')
).property('actions.@each')

此控制器的路由如下所示。

App.GameRoute = Ember.Route.extend
 model: (params) ->
  App.Game.find(params.game_id)

任何帮助,将不胜感激。

4

1 回答 1

0

根据您希望从哪个控制器访问操作,您是否尝试访问您的控制器content,例如:

App.ActionsController = Ember.ArrayController.extend({
  myFunction: function() {
    this.get('content').forEach(function(action) {
      console.log(action.get('type'));
    });
  }
});

或从您的GamesController

App.GamesController = Ember.ArrayController.extend({
  myFunction: function() {
    this.get('content').forEach(function(game) {
      game.get('actions').forEach(function(action) {
        console.log(action.get('type'));
      });
    });
  }
});

(很抱歉没有将代码合并)

希望能帮助到你。

于 2013-08-22T21:42:40.317 回答