Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ember.js插座工作不正常_Javascript_Html_Ember.js - Fatal编程技术网

Javascript Ember.js插座工作不正常

Javascript Ember.js插座工作不正常,javascript,html,ember.js,Javascript,Html,Ember.js,我目前正在学习ember.js,我遇到了一个非常基本的问题:我找不到一种方法来使用outlets在另一个模板中呈现模板。以下是我拥有的文件: 车把 <div class='navbar navbar-inverse navbar-fixed-top' role='navigation'> <div class='navbar-inner'> <div class='container'> <a class=

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

车把

<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>
router.js:

App.Router.map(function() {
    this.route('posts',{ path: '/posts' }); 
    this.route('application',{ path: '/' }); 
});
下面是发生的情况:当我加载应用程序时,页面当前显示为导航栏和一个空白的白色页面。点击“Posts”链接显示Posts模板,但是nav消失了,就好像Posts模板替换了整个“application”模板一样。
你能帮我弄清楚为什么会发生这种情况吗?

在内部使用
ApplicationRoute
,我认为使用
this.route('application',{path:'/')正在导致冲突

所以只需删除
this.route('application',{path:'/')一切都将正常工作

如果需要主页/初始页,可以创建
索引.handlebar
模板,因为ember会自动创建
此.route('index',{path:'/')。并将
链接更改为“应用程序”
链接为“索引”
,以获得预期的行为


请看一下那把小提琴,看看它是否能用

我看到了你的小提琴,它能用,但在我的情况下不起作用。我仍然会得到“posts”模板替换整个页面的相同行为(导航栏消失)。我还遗漏了其他一些细节吗?我用这个作为参考编写了我的应用程序:只是删除了这个.route('application',{path:'/'});为我工作。你们在控制台中有错误吗?一点错误都没有,我在余烬控制台(chrome)中得到了一个“转换成帖子”,但一点错误都没有。也许我使用rails作为一个框架的事实在某种程度上与此相冲突,但我实际上不知道如何解决。当我在导航栏中单击“Posts”时,似乎模板正在取代rails的yield,而不是ember的outlet。这会给你任何提示吗?所有模板都会在ember应用程序启动时加载。因此,如果您单击“Posts”链接,并且没有向rails发送请求,rails就不是问题所在。我想。
App.PostsRoute = Ember.Route.extend({
    model: function() {

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