我有一个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/'
});
虽然模板仍未加载。我在页面底部看到了车把的脚本标签,它没有被使用。
答案 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>