Javascript 余烬轨道返回按钮不可用';即使没有嵌套的路由,也不能渲染模板

Javascript 余烬轨道返回按钮不可用';即使没有嵌套的路由,也不能渲染模板,javascript,ruby-on-rails,ember.js,ember-rails,Javascript,Ruby On Rails,Ember.js,Ember Rails,我正在尝试获得一个简单的Ember Rails应用程序,看起来一切都很好,但“后退”按钮完全删除了所有渲染元素。没有错误 据我目前所知,之所以会发生这种情况,是因为Ember希望“父”模板已经呈现,而不会重新呈现。在我的应用程序中,我首先呈现一个“帖子”列表,以及每个帖子的链接。每个链接都应该打开有问题的帖子,替换呈现的“帖子”页面。它做得很好,然后当我单击后退按钮时,它会做一些有趣的事情:它呈现索引页面,然后删除应用程序模板中的所有内容(包括索引等) 以下是相关的代码片段: 首先是rails

我正在尝试获得一个简单的Ember Rails应用程序,看起来一切都很好,但“后退”按钮完全删除了所有渲染元素。没有错误

据我目前所知,之所以会发生这种情况,是因为Ember希望“父”模板已经呈现,而不会重新呈现。在我的应用程序中,我首先呈现一个“帖子”列表,以及每个帖子的链接。每个链接都应该打开有问题的帖子,替换呈现的“帖子”页面。它做得很好,然后当我单击后退按钮时,它会做一些有趣的事情:它呈现索引页面,然后删除应用程序模板中的所有内容(包括索引等)

以下是相关的代码片段:

首先是rails application.html.erb

<!DOCTYPE html>
<html>
<head>
  <title>Slimgur</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= stylesheet_link_tag    'bootstrap', media: 'all', 'data-turbolinks-track' => true %>
  <%= stylesheet_link_tag    'bootstrap-theme', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>
<%= yield %>

<div class='container'>
    <div id="ember-app">
    </div>
</div>

</body>
</html>

//This is the page that is rendered by rails.
<h1>Static#index</h1>
<p>Find me in app/views/static/index.html.erb</p>

/* Application.js file. After all require statements. */
App = Ember.Application.create({rootElement: '#ember-app'});

/* Router.js */
// --------------------------
App.Router.map(function() {
  this.resource('posts');
  this.resource('post', { path: 'posts/:id' });
})

/* Application.hbs. */
// --------------------------
<header>
    <article>
        <div class="logo">
            <h1>
                <a href="#">App</a>
            </h1>
        </div>
</article>
</header>

{{!-- This is intended to render all Ember Templates.  --}}
<section id="main">
    {{{outlet}}}
</section>

<footer>
    <p> Testing Footer one two three </p>
</footer>

/* posts.hbs */
// --------------------------
<article id="posts">
    <h1>Posts</h1>

        <ul>
            {{#each post in model}}
                <li>{{#link-to 'post' post}}{{post.title}}{{/link-to}}</li>
            {{/each}}
        </ul>
</article>

{{outlet}}

/* post.hbs*/
// --------------------------
<h2>{{title}}</h2>

/* Ember Routes: */
// --------------------------
App.PostsRoute = Ember.Route.extend({
    model: function(){
        return this.store.find('post');
    },
})

App.PostRoute = Ember.Route.extend({
    model: function(params){
        return this.store.find('post', params.id);
    },
})

苗条的
正确%>
正确%>
正确%>
正确%>
//这是由rails呈现的页面。
静态指数
在app/views/static/index.html.erb中查找我

/*Application.js文件。毕竟我们需要陈述*/ App=Ember.Application.create({rootElement:'#Ember-App'}); /*路由器.js*/ // -------------------------- App.Router.map(函数(){ 这是资源(“员额”); 资源('post',{path:'posts/:id'}); }) /*Application.hbs*/ // -------------------------- {{!--这用于呈现所有余烬模板。-} {{{outlet}}} 测试页脚一二三

/*博思商学院*/ // -------------------------- 帖子
    {{#模型中的每个帖子}
  • {{{#链接到'post'post}{{post.title}}{{/link to}}
  • {{/每个}}
{{outlet}} /*博士后*/ // -------------------------- {{title}} /*余烬路线:*/ // -------------------------- App.PostsRoute=Ember.Route.extend({ 模型:函数(){ 返回此.store.find('post'); }, }) App.PostRoute=Ember.Route.extend({ 型号:功能(参数){ 返回this.store.find('post',params.id); }, })

我相信.hbs文件可以编译成Handlebar模板

嗯,最终,我拆除了涡轮链接。我仍然有点不确定是否这样做,但它似乎并没有以任何方式妨碍我的应用程序

为此,您必须删除turbolink gem、application.js中的“require turbolink”行以及application.html.erb中的turbolink标记

我交叉着手指,希望这不会把我没见过的事情搞砸

可能重复的