2013-03-27 5 views
5

次Userモデルを持って?モデルまたはコントローラで計算されたプロパティを宣言する必要がありますか? <pre><code>Sks.User = DS.Model.extend firstName: DS.attr("string") lastName: DS.attr("string") </code></pre> <p></p>は 'のfullName' 計算されたプロパティを宣言する必要があります:

fullName: Ember.computed(-> 
    firstName = @get("firstName") 
    lastName = @get("lastName") 
    firstName = "" if firstName is `undefined` 
    lastName = "" if lastName is `undefined` 
    lastName + " " + firstName 
).property("firstName", "lastName") 

「UsersController」に入れるのか、モデルに直接入れるのですか? Emberのドキュメントによれば、セッション全体でのみ使用されるフィールドはコントローラで記述する必要があります。しかし、問題は、私はインデックステンプレートで「のfullName」にアクセスできませんでしたです:ここでは

Sks.IndexController = Ember.Controller.extend 
    needs: ['users'] 

「のfullName」(コントローラ内で宣言)

{{#each user in controllers.users}} 
    <li>{{user.fullName}}</li> 
{{/each}} 

アクセスできなかった。しかし、それはときにそれがありますモデルでは

答えて

5

この場合、モデルはfirstname属性とlastname属性がある場合にのみ意味をなすので、計算されたプロパティの適切な場所だと思います。

コントローラーには理にかなったプロパティを置くことができますが、アプリケーション全体で複数の場所で "fullName"などのプロパティを使用できると想像します(コントローラー内でこれを使用すると、アプリのさまざまな部分での努力)

関連する問題