0

我目前正在学习 ember.js,但遇到了一个非常基本的问题:我找不到使用插座在另一个模板中呈现模板的方法。这些是我拥有的文件:

应用程序.handlebar

<div class='navbar navbar-inverse navbar-fixed-top' role='navigation'>
    <div class='navbar-inner'>
        <div class='container'>
            <a class="brand" href="#">App</a>
            <div class='nav-collapse collapse'>
                <ul class='nav'>
                    <li>{{#linkTo 'application'}}Home{{/linkTo}}</li>
                    <li>{{#linkTo 'posts'}}Posts{{/linkTo}}</li>
                </ul>
            </div>
        </div>
    </div>
</div>
<div class='container' id='main'>
    <div class='content'>
        <div class='row'>
            <div class='span12'>
                <div class='page-header'></div>
                {{outlet}}
            </div>
        </div>
    </div>
</div>
</div>

帖子.车把:

    <ul>
{{#each controller}}
  <li>
  {{title}}
  </li>
{{/each}}
</ul>

帖子路线:

App.PostsRoute = Ember.Route.extend({
    model: function() {

       return App.Post.find();
    }
});

路由器.js:

App.Router.map(function() {
    this.route('posts',{ path: '/posts' }); 
    this.route('application',{ path: '/' }); 
});

这是发生的情况:当我加载应用程序时,该页面当前显示为带有导航栏和一个空白页面。单击“帖子”链接会显示帖子模板,但导航会消失,就像帖子模板替换了整个“应用程序”模板一样。你能帮我弄清楚为什么会这样吗?

4

1 回答 1

0

内部 ember use an ApplicationRoute,我认为 usingthis.route('application',{ path: '/' });会导致冲突。

因此,只需删除this.route('application',{ path: '/' });所有内容即可。

如果您需要主页/初始页面,您可以创建一个index.handlebars模板,因为 ember 会自动创建一个this.route('index',{ path: '/' });. 并更改linkTo 'application'linkTo 'index', 以获得预期的行为。

请看看那个小提琴看看这个工作http://jsfiddle.net/marciojunior/HpmwB/

于 2013-10-30T23:15:04.247 回答