2013-11-26 34 views
0

當使用{{render "modelHandler" model}}時,相應控制器的model函數永遠不會被調用。Ember控制器模型掛鉤從未調用過

這裏轉載:http://jsbin.com/EVoXAceP/3/edit

我90%肯定這是一個錯誤。在我發佈到github之前,我會在這裏發佈這些信息,以防萬一有一些明顯的我錯過了或者「我做錯了」。無論哪種情況,如果你能指出我朝着正確的方向。

用例(爲什麼我首先需要這個工作)。

我正在使用{{render}}包含AddressAdd模板,爲此我需要擴展模型以包含狀態列表以及默認狀態。雖然我可以將狀態加載到父模型(比如屬性或聯繫人卡片)上,但由於許多視圖都包含AddressAdd,因此我希望避免每次都要手動添加下拉菜單的信息。

所以,如果你也碰巧知道除了{{render}}和控制器的模型鉤子之外還有更好的實現方法,請告訴我!

回答

1

這不是一個錯誤,模型鉤子只有在你訪問與該路由相關的url時纔會被觸發,並且它在路由上而不是控制器上。另外,如果你的控制器有一個模型,它應該是一個ObjectController(除非它是一個數組,那麼它是一個ArrayController)。

http://jsbin.com/EVoXAceP/13/edit

當你調用渲染你說你想用特定的上下文來渲染一個特定模板。

我會在您所在的路線下創建一個路線,並使用鏈接到一個沒有模型的鏈接,這會導致模型掛鉤啓動。

1

在您的應用程序模板

{{ render 'foo' bar }} 

你不應該有在ApplicationController中一個bar財產?

App.ApplicationController = Ember.Controller.extend({ 
    bar: {isBar: 'yup'} 
}); 
+0

事實證明,這是一個深夜工作的情況,並忘記模型掛鉤在路線上,而不是控制器。雖然謝謝! – runspired