簡體   English   中英

視圖綁定未定義-Ember.js

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM