1

モデルを emberjs でテンプレートにバインドします

<script type="text/x-handlebars" id="dashboard">
    <div>
        <span>this is user list</span>
        <div>
            {{render userinfo userinfo}}
        </div>
    </div>
</script>

<script type="text/x-handlebars" id="_userinfo">
   {{#each model}}
   <span>{{user}}
   {{/each}}
</script>

App.Userinfo= DS.Model.extend({
    user: DS.attr("string")
});

App.Userinfo.FIXTURES = [
    {user:"user1"},
    {user:"user2"},
    {user:"user3"}
];

App.UserinfoView= Ember.View.extend({
});

App.UserinfoController = Ember.ObjectController.extend({   
});


App.Router.map(function() {
    this.resource('dashboard', {path: '/dashboard'}, function() {
    });
});

App.DashboardRoute = Ember.Route.extend({
    renderTemplate: function() {
        this.render('dashboard', {      // the template to render
          controller: 'dashboard'       // the controller to use for the template
        }); 
    }
});

App.DashboardController = Ember.ObjectController.extend({ 
});

/#/dashboard に移動すると、ダッシュボード テンプレートが読み込まれます。
ここでは、userinfo をレンダリングしました。Userinfo モデルを usersinfo テンプレートにバインドして、すべてのユーザーを表示したいと思います。お願い助けて。

4

1 に答える 1

3

短い:ここでは動作中のjsbin です。

長い:コード内で不必要な処理を少し行う必要がありましたが、基本的には次のように処理されます。

まず最初に、dashboardルートへのリダイレクトがありませんでした。これが唯一のルートであるため (少なくともコードから確認できる限り)、indexルートに入った後に直接リダイレクトします。

App.IndexRoute = Ember.Route.extend({
  redirect: function() {
    this.transitionTo('dashboard');
  }
});

DashboardControllerどうしようもないので削除しました。次に、テンプレートに実際のデータを提供するためDashboardRouteのフックがありませんでしたmodeldashboard

App.DashboardRoute = Ember.Route.extend({
  model: function(){
    return App.Userinfo.find();
  }
});

pathルーター マップでは、URL がテンプレート名と同じ名前である場合は定義する必要はありません。dashboard

App.Router.map(function() {
  this.resource('dashboard');
});

ユーザー情報モデルは正しかった

App.Userinfo= DS.Model.extend({
  user: DS.attr("string")
});

しかし、あなたのフィクスチャが欠けているid

App.Userinfo.FIXTURES = [
  {id:1, user:"user1"},
  {id:2, user:"user2"},
  {id:3, user:"user3"}
];

さらに、テンプレートでrenderヘルパーを使用してレンダリングする正しい方法はこれですpartial_userinfopartial

{{partial userinfo}}

modelご覧のとおり、フックを介してデータが利用可能になるため、追加のパラメーターを渡しません。ヘルパーは、partialレンダリング先のテンプレート (この場合はdashboardテンプレート) で提供されるコンテキストとデータを使用するため、modelフックが必要です。

それが役に立てば幸い。

于 2013-07-13T14:54:28.030 に答える