2014-11-22 3 views
1

Я пытаюсь получить простое приложение 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); 
    }, 
}) 

Я считаю, что .hbs файлы компилировать шаблоны рули.

+0

Возможный дубликат [Ember.js с Rails4: приложение для устранения кражи браузера назад) (http://stackoverflow.com/questions/18142401/ember-js-with-rails4-browser-back-button-crash-ember -заявление) – Chris

ответ

0

Ну, в конце концов, я закончил удаление турбовинтов. Я все еще немного не уверен в этом, но это, похоже, пока еще не мешает моему приложению.

Для этого вам нужно будет удалить драгоценный камень turbolinks, строку «require turbolinks» в application.js и теги turbolink в application.html.erb.

Я скрещиваю пальцы, надеясь, что ничего не испортил, чего я не видел.