2013-04-21 16 views
1

我有一個使用ember-auth的Ember.js應用程序。Ember應用程序無法綁定延遲對象

Auth.on("signInSuccess", function() { 
    App.currentUser = App.User.find(Auth.currentUserId); 
}); 

我也有一個控制器(見App.currentUser):

App.CustomersIndexController = Ember.ArrayController.extend({ 
    currentUserBinding: 'App.currentUser' 

    customers: null, 

    loadCustomers: (function() { 
    var company = this.get('currentUser').get('company'); 
    return this.set('customers', company.get('customers')); 
    }).observes('currentUser.company') 
}); 

問題:

的結合不工作,因爲 「App.currentUser」 是空值。控制器在「signInSuccess」事件之前進行初始化。

「客戶」應該將當前用戶的公司客戶作爲默認值。控制器也有邏輯(從所示代碼中刪除),所以用戶可以將「客戶」設置爲另一個陣列。

回答

2

您可能必須使用set方法才能正確通知觀察者。

App.set('currentUser', App.User.find(Auth.currentUserId)); 
+0

控制器初始化時Auth.currentUserId爲null,因爲控制器的路由是第一個被訪問的。 – Jacob 2013-04-22 05:06:53

+0

所以我的代碼不起作用? – Myslik 2013-04-22 08:48:24

+0

對不起,我忘了回覆。你的幫助是非常感謝,它的作品完美。我想我的問題更多的是一個模式問題,但也許我只需要適應所有那些制定者和獲得者。 – Jacob 2013-04-22 13:15:57