2

REST エンドポイントからアカウント情報を取得するルートを設定しました。

Social.Router.map(function() {
    this.resource('accounts');
});

Social.AccountsRoute = Ember.Route.extend({
    model: function() {
        return Social.Account.find();
    }
});

Social.Account = DS.Model.extend({
    name: DS.attr('string'),
    username: DS.attr('string')
});

Social.AccountsController = Ember.ArrayController.extend();

次のように、テンプレートでそのデータをループできます。

<script type="text/x-handlebars" data-template-name="accountItem">
    {{#each account in controller}}
        <div class="avatar-name">
            <p>{{account.name}}</p>
            <p>{{account.username}}</p>
        </div>
    {{/each}}
</script>

同じアカウント データを使用したい別のテンプレートがあります。アカウント モデルに関連付けられた情報をビュー内から取得して、対応するテンプレートで使用できるようにするにはどうすればよいですか?

Social.NewPostView = Ember.View.extend({
    tagName: 'div',
    accounts: function(){
        // return Account data here?
    }
});

更新 1

これが私のUIの簡単なビューです

左側は「ライブ」アカウント データです。右側は静的 HTML です。左のデータを右に再利用したいと思います。わかる?

4

1 に答える 1

3

コントローラーのneedsプロパティを確認する必要があります。これにより、現在のコントローラからアクセスできるコントローラのリストを指定できます。

詳細については、emberjs guides

NewPostController

Social.NewPostController = Ember.ObjectController.extend({
    needs: ['accounts'],

    init: function(){
        this._super();
        console.log(this.get('controllers.accounts'))
    }
});


次に、テンプレートから:

<script type="text/x-handlebars" data-template-name="newPost">
    {{#each account in controller.controllers.accounts}}
        <div class="avatar-name">
            <p>{{account.name}}</p>
            <p>{{account.username}}</p>
        </div>
    {{/each}}
</script>


于 2013-02-26T22:35:46.767 に答える