无法获得基本的emberjs应用程序在rails平台上工作

时间:2015-01-30 18:07:03

标签: ruby-on-rails-4 ember.js

我有一个rails应用程序,其中包含一个带有索引操作的StaticController:

class Private::StaticController < PrivateController

  def index

  end
end

routes.rb中:

get 'static' => 'private/static#index'

我想在相应的视图中启动一个emberjs应用程序:

<%= javascript_include_tag 'ember_application' %>
<h1>Hello</h1>
<script type="text/x-handlebars">
  <div>{{outlet}}</div>
</script>

为此,我创建了一个基本的emberJS路由器:

PlatformUI.Router.map(function() {
  this.route('test', { path: '/test' });
});

PlatformUI.Router.reopen({
  rootURL: '/static/'
});

模板(在app / assets / javascripts / templates / test.handlebars中)包含:

<script type="text/x-handlebars" data-template-name="test">    
    <h2>Something</h2>
</script>

运行应用程序时,只需要“Hello&#39;显示在页面上。 ember检查员(chrome插件)说emberjs正确加载。路线有问题吗?我该如何调试?

Gemfile:

gem 'ember-rails'
gem 'ember-source', '~> 1.9.1'

更新,我设法让转换记录器通过更改以下内容告诉我我正在进行测试:

PlatformUI.Router.map(function() {
  //this.route('index', { path: '/' });

  this.resource('test', { path: '/test' });

});

PlatformUI.Router.reopen({
  location: 'history',
  rootURL: '/static/'
});

虽然模板仍未加载。我在页面底部看到了车把的脚本标签,它没有被使用。

1 个答案:

答案 0 :(得分:1)

不要在test.handlebars模板中包含脚本标签,此文件的内容应仅包含手柄模板,即

<h2>Something</h2>

只有在直接将模板嵌入到html中时才需要脚本标记。

此外,rails视图应包含以下内容:

<head>
    <!-- other standard head content -->
    <%= javascript_include_tag 'ember_application' %>
</head>
<body>
</body>

应用程序模板应位于application.handlebars文件中,包含

<h1>Hello</h1>
<div>{{outlet}}</div>