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