[英]View binding undefined - Ember.js
所以我有一個有趣的問題。 我有一個側邊欄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'。
有什么想法嗎?
如果您使用的是Ember的最新版本,則在控制器完全設置好之后,觀察者才會觸發。 要解決此問題,請on('init')
觀察者on('init')
添加on('init')
:
observeLoaded: (->
console.log 'this is loaded', @get 'loaded'
).observes('loaded').on('init')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.