我正在阅读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
属性是否可以代理到名为ArrayController
的App.SongsController
? itemController
在这里到底在做什么? 最佳答案
当Songs数组中的每个元素以某种方式使用(即以{{each}}循环呈现)时,每首歌曲都会实例化其自己的控制器。因此,您可以列出歌曲,并且每首歌曲都可以具有自己的属性(例如isPlaying
),或者可以编写action
处理函数以响应用户交互play
或pause
。
您的SongController
对于数组中的每首歌曲都存在。
App.SongController = Ember.ObjectController.extend({
isPlaying: false,
actions: {
someAction: ...
}
});
如果不需要这些属性或不需要在此控制器上处理动作,则可以不使用itemController。