我正在阅读EmberJS文档,并在这里遇到了绊脚石:

ITEM CONTROLLER
It is often useful to specify a controller to decorate individual items in the ArrayController while iterating over them. This can be done in the ArrayController definition:

App.SongsController = Ember.ArrayController.extend({
  itemController: 'song'
});


不能完全确定itemController在这里的目的。现在,song属性是否可以代理到名为ArrayControllerApp.SongsControlleritemController在这里到底在做什么?

最佳答案

当Songs数组中的每个元素以某种方式使用(即以{{each}}循环呈现)时,每首歌曲都会实例化其自己的控制器。因此,您可以列出歌曲,并且每首歌曲都可以具有自己的属性(例如isPlaying),或者可以编写action处理函数以响应用户交互playpause

您的SongController对于数组中的每首歌曲都存在。

App.SongController = Ember.ObjectController.extend({
  isPlaying: false,
  actions: {
    someAction: ...
  }
});


如果不需要这些属性或不需要在此控制器上处理动作,则可以不使用itemController。

07-26 03:47