2013-07-02 18 views
1

說我有一個CarUserDS.Model S,並想呈現給用戶的個人資料頁面上車的名單,他們可能喜歡開車,所以在user模板我已經設置了一個簡單的Bootstrap.Forms.SelectcontentBindingsuggestedCars如何使計算的關係依賴於不同模型的所有記錄?

而在user.coffee類文件(因爲這是業務邏輯):

App.User = DS.Model.extend 
    ... 
    suggestedCars: (-> App.Car.all().filter(-> true)).property('UNKNOWN') 

而對於我的生活中,我想不出該怎麼把未知有它的工作如何應該是。我需要找出綁定所有車輛的關鍵路徑。所有通過Ember來源傾注的明智嘗試都讓我無法追索。將UNKNOWN設置爲fullName允許我通過更改配置文件中的用戶名稱來查看過濾器代碼是否按預期工作,只要名稱發生更改,select就會與所有汽車一起填充。

作爲一個有趣的側面說明,即使從系統中刪除即使這個微不足道的過濾器也必須改變一些東西與加載的時間,以便選擇填充從all()和一個空的屬性,但當然不會改變當汽車改變時。

很明顯,我想做一些比「真實」更復雜的過濾器(並且我也不是真的在處理Cars),但是我已經將問題簡化爲基本知識以找到問題所在是,而且這似乎是這個被詛咒的關鍵道路,或者也許是我的天真做法。

非常感謝您的時間,關注和幫助。

+0

你能提供更多的展示您的設置看起來像一個jsbin? – intuitivepixel

+0

聽起來像'UserController'中要做的事情?將'suggestedCars'作爲一個計算屬性來觀察'content.username'(如果'User'是'UserController'的'content/model')。所以每次'content.username'改變,'suggestedCars'都會改變並返回你想要的任何東西(.all()或.filter())...? – colymba

回答

1

@colymba已基本回答了評論中的問題。即使它是業務邏輯,這種計算屬性可能最適合於控制器。 Ember的MVC和前端MVC的一般情況在這方面與服務器端不同。

你需要這樣的事情,

App.CarsController = Ember.ArrayController.extend({ 
    needs: ['users'], 
    usersBinding: 'controllers.users', 

    suggestedCars: function() { 
    // return something based on both users and cars 
    }.property('[email protected]', '[email protected]') 
}); 
+0

我看到了,所以你說我會創建一個從屬UserCarsController來檢查UserController中當前用戶是什麼,並使用當前用戶執行過濾作爲兩個控制器模型的計算屬性?這聽起來很合理。 –

相關問題