2013-08-31 32 views
3

我有以下的路線設置:控制器不需要滿足

this.resource('password_reset', { path: '/password_reset' }, function() { 
    this.route("request"); // request a password reset 
    this.route("sent");  // instruct user that email has been sent 
    this.route("claim"); // receive nonce link from email to claim the reset 
}); 

而且當用戶請求他們被要求把自己的用戶名或電子郵件地址來標識自己復位:

request

當用戶按下「請求重置」按鈕時,我們轉換到「password_reset.sent」路線,用戶被指示有關已發送的電子郵件。

enter image description here

作爲一個方便的功能給他們一個按鈕,可以重新發送電子郵件。爲了做到這一點,我需要password_reset.request路由的控制器的username屬性。我想我會使用'需要'屬性得到這個工作:

App.PasswordResetSentController = Ember.ObjectController.extend({ 
    needs:'password_reset.request', 
    usernameBinding: "controllers.password_reset.request.username", 
    username: null, 

現在我沒有從這個任何錯誤,但它似乎也沒有工作。調試器顯示PasswordResetSentController的狀態爲:

debug info

有很多我不明白這裏。最親愛的我的心臟當然是username,它仍處於初始化狀態null。除此之外,爲什麼將兩個App.PasswordResetSentController分組框中的所有屬性劃掉?還有爲什麼有這兩個盒子都爲App.PasswordResetSentController

我看着「控制器」和「usernameBinding」屬性,希望能在那裏找到我的方式,但他們並沒有幫助我解決這個問題。對於那些誰是燼火焰燒傷亮一點,這裏的綁定對象:

enter image description here

回答

2

的問題是,只有結合。

更改您的PasswordResetSentController作爲

App.PasswordResetSentController = Ember.ObjectController.extend({ 
    needs:'password_reset.request', 
    username: Ember.computed.alias("controllers.password_reset.request.username"), 
}); 

有在綁定的問題,它已經建議使用計算屬性,到位綁定的,而且它在這issue

+0

好,謝謝討論。好建議。我現在正在接收這個錯誤,但是......任何想法它真的說了些什麼? '未捕獲的ReferenceError: #needs不包含'password_reset'。要從訪問password_reset控制器,應該具有'needs'屬性,該屬性是其有權訪問的控制器的數組。' – ken

+0

如果我將計算的引用更改爲: 'request:Ember.computed.alias(「password_reset.request」)'我沒有收到任何錯誤,但是調試器聲明'request'屬性爲null,而不是指向password_reset.request控制器的指針。 – ken

+0

嘗試將'password_resetRequest'和別名的需求更改爲'controllers.password_resetRequest.username',並檢查它是否有效。 – Hyder