【发布时间】:2014-10-11 20:30:51
【问题描述】:
所以我有一个有趣的问题。我有一个侧边栏,SortableStopView,它扩展了 CollectionView,其中我有一个可滚动的、可排序的“站点”列表,用户可以单击以访问该站点的摘要页面。
还有 SortableStopsController,一个 ArrayController 用于按display_order 对停靠点进行排序。事后看来,这个 ArrayController 不是必需的,但我不认为这是我的问题。
App.SortableStopController = Ember.ArrayController.extend
sortProperties: ['display_order']
loaded: false
stopsMoved: false
observeStuff: (->
console.log 'stops', @get 'content'
console.log 'loaded', @get 'loaded'
).observes 'loaded', 'content'
现在,在 StopsIndexRoute 中,我有 configController。 (我所有的路由都扩展 App.AuthenticatedRoute 覆盖 setupController,运行一些自定义代码,然后调用 configController。这是我在整个应用程序中使用的而不是 setupController。)在这里,我将 SortableStopController 的内容设置为停止我通过 Ember Data 获取并告诉控制器该数据已加载。
App.StopsIndexRoute = App.AuthenticatedRoute.extend
configController: (controller, model) ->
self = this
sortableStopCtlr = @controllerFor 'sortableStop'
@store.find('stop', route_id: model.get("route_id")).then (stops) ->
sortableStopCtlr.set 'model', stops
sortableStopCtlr.set 'loaded', true
这一切都被插入到stops.hbs(它需要在所有停靠路线上)
{{view "sortableStop" content=controllers.sortableStop.arrangedContent loadedBinding="controllers.sortableStop.loaded" movedBinding="controllers.sortableStop.stopsMoved"}}
问题是以下观察者注销了this is loaded undefined。如果我注销content,也会出现同样的情况。
App.SortableStopView = Ember.CollectionView.extend
observeLoaded: (->
console.log 'this is loaded', @get 'loaded'
).observes 'loaded'
这里没有显示,但是 StopsController、StopsIndexController 和 StopsEditController 在它们的needs 数组中都有'sortableStop'。
有什么想法吗?
【问题讨论】:
标签: javascript ember.js coffeescript