使用Ember.js无法正确渲染把手模板

使用Ember.js无法正确渲染把手模板,ember.js,handlebars.js,Ember.js,Handlebars.js,我有一个简单的Ember.js应用程序,它使用把手模板。我的main.js文件中列出了一些用户路线: App.Router.map(function() { this.resource('users', function() { this.resource('user', { path: '/:user_id' }, function() { this.route('edit'); }); this.route('create'); }); });

我有一个简单的Ember.js应用程序,它使用把手模板。我的main.js文件中列出了一些用户路线:

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


App.UsersRoute = Ember.Route.extend({
  model: function() {
    return this.store.find('user');
  }
});
App.UsersController = Ember.ArrayController.extend({
  sortProperties: ['first_name']
});    
App.UserRoute = Ember.Route.extend({
  model: function(params) {
    return this.store.find('user', params.user_id);
  }
});
App.UserController = Ember.ObjectController.extend({});
为此,我有以下两个模板(在同一个文件中):


  • {{{#链接到'index'}主页{{/链接到}
  • 活跃用户
    • {{{#各}
    • {{{#链接到'user'这个class='label label primary'}{{{first{u name}}{{/link to}}
    • {{/每个}}
  • {{{#链接到'index'}主页{{/链接到}
  • 用户:{{first_name}
  • 试验


    但是,“用户”模板不会加载。如果我访问“/users/4”,它只会再次加载“users”模板。知道我做错了什么吗?谢谢。

    您需要向
    用户
    模板添加
    {outlet}
    ,以便它知道子例程(在您的情况下是
    用户
    )应该呈现在哪里。

    您需要向
    用户
    模板添加
    {outlet}
    ,以便它知道子例程(在您的情况下是
    用户
    )应该呈现。

    您有这样的模板层次结构

    application
      -index (generated)
      -users
         -index (generated)
         -user
            -index (generated)
            -edit
         -create
    
    您必须告诉父模板中的占位符{{outlet}},子模板在何处呈现

    假设我们有两个子模板,第一个子模板在{{outlet}}给定的区域中呈现,那么导航到第二个子模板将替换第一个子模板。但将保留父模板内容,仅更改子模板的区域

    看一看


    您有这样的模板层次结构

    application
      -index (generated)
      -users
         -index (generated)
         -user
            -index (generated)
            -edit
         -create
    
    您必须告诉父模板中的占位符{{outlet}},子模板在何处呈现

    假设我们有两个子模板,第一个子模板在{{outlet}}给定的区域中呈现,那么导航到第二个子模板将替换第一个子模板。但将保留父模板内容,仅更改子模板的区域

    看一看


    如果我希望模板完全不同,那该怎么办?如果我添加一个{outlet},除了“user”中的内容之外,它不会在“users”中呈现所有内容吗?谢谢Ryan-直到Susai也回答了,我才完全理解它,但你是对的,我需要一个{outlet}。如果我希望模板完全不同呢?如果我添加一个{outlet},除了“user”中的内容之外,它不会在“users”中呈现所有内容吗?谢谢Ryan-直到Susai也回答了,我才完全理解它,但你是对的,我需要一个{outlet}。好的,这样我就可以创建一个“users”模板,其中只有一个{outlet},然后是一个“users/index”模板,在“/users”和一个“user”处呈现将在“users/:user_id”处呈现的模板?是的,刚刚尝试过,效果很好。谢谢你的帮助,现在你已经解释过了,它变得更有意义了。好吧,我可以创建一个“用户”模板,只需要一个{outlet},然后是一个“用户/索引”模板,在“/users”处呈现,还有一个“用户”模板,在“users/:user_id”处呈现?是的,刚刚尝试过,它就工作了。谢谢你的帮助,既然你已经解释清楚了,那就更有意义了。