Ember.js:如何使子路径显示在父资源中

时间:2015-04-22 01:12:59

标签: javascript ember.js ember-router

最近我一直在阅读ember文档并尽可能地遵循。我取得了很好的进步,我感谢上帝,但最近我遇到了麻烦。具体来说,我可以在应用程序模板中显示模板,但是我无法在父资源模板中显示子路径。相反,子模板实际上取代了它。这是我的代码:

的index.html



<script type="text/x-handlebars" data-template-name="modals">
        <h2>Modals Parent Route</h2>
       <p>This is the modals route which is common to all modals</p>
        {{outlet}}
    </script>
    <script type="text/x-handlebars" data-template-name="modals/layout">
       <h2>Layout Route</h2>
    </script>
    <script type="text/x-handlebars" data-template-name="modals/visuals">
       <h2>Visuals Route</h2>
    </script>
    <script type="text/x-handlebars" data-template-name="modals/finish">
       <h2>Finish Route</h2>
    </script>
    <script type="text/x-handlebars" data-template-name="modals/preview">
       <h2>Preview Route</h2>
    </script>
&#13;
&#13;
&#13;

App.js

&#13;
&#13;
App.Router.map(function(){
    this.resource('modals', { path:'/modals' }, function(){
    this.route('layout');
    this.route('visuals');
    this.route('finish');
    this.route('preview');
    });
});
App.LayoutRoute = Em.Route.extend({
    renderTemplate: function() {
        this.render('modals.layout',{
           into: 'modals',
        });
    }
&#13;
&#13;
&#13;

这不是完整的代码,但我认为这将与本主题有关。如果您需要完整的文件内容,请随时问我。

3 个答案:

答案 0 :(得分:1)

所以我使用了ember-cli,最后找到了一种方法来实现这个功能。我用ember-cli g路线生成我的路线。除了应用程序之外,我为每条路线运行了一次。事情之后,事情才能正常运作。这是一个人为我创建的git存储库,可以帮助任何有这个问题的人:https://github.com/mooror/mooror。谢谢大家

答案 1 :(得分:0)

如果您想要嵌套模板,则需要嵌套路由。

this.resource('parent', function() {
  this.route('child');
});

请参阅:http://guides.emberjs.com/v1.10.0/routing/defining-your-routes/#toc_nested-resources

答案 2 :(得分:0)

您正在使用的renderTemplate方法完全覆盖了modals的模板,这就是为什么要摆脱它。 Ember为您处理模板的渲染,没有必要使用您试图实现的基本功能。