2013-03-14 108 views
1

如何访问子模板中的数据?将数据传递给子模板

例如,她是我的路由器:

App.Router.map(function() { 
    this.resource("users", function(){ 
     this.route('new'); 
    }); 
    this.resource("user", {path: '/users/:user_id'}, function(){ 
     this.route('edit'); 
    }); 
}); 

路线:

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

单用户模板:

<script type="text/x-handlebars" data-template-name="user"> 
    <h2>{{name_full}} is the username on the resource template</h2> 
    {{ outlet }} 
</script> 

单用户索引模板:

<script type="text/x-handlebars" data-template-name="user/index"> 
    <h2>{{name_full}} is the username on the index page.</h2> 
    {{#linkTo users}}Back to All Users{{/linkTo}} 
</script> 

我明白单用户模板如何访问用户对象,但我如何给子路由访问权限呢?

我已访问Ember Router Guides,但这仍然不清楚。

回答

2

为了给出子路由访问,您需要定义UsersIndexRoute并从其模型钩子返回用户。所以:

App.UserIndexRoute = Ember.Route.extend({ 
    model: function() { 
    return this.modelFor("user"); 
    } 
}); 

modelFor将查找指定的路线,这可能是任何东西,但在这种情况下,恰好是父当前模型。

+0

有道理。谢谢。 – user1168427 2013-03-15 00:43:03