【问题标题】:Cannot get basic emberjs application to work on rails platform无法让基本的 emberjs 应用程序在 Rails 平台上工作
【发布时间】:2015-01-30 18:07:02
【问题描述】:

我有一个包含带有索引操作的 StaticController 的 Rails 应用程序:

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”。 ember 检查器(chrome 插件)说 emberjs 已正确加载。路线有问题吗?我该如何调试这个??

宝石文件:

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

更新,我设法通过更改以下内容让转换记录器告诉我我在 /test 中:

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

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

});

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

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

【问题讨论】:

  • 您用来访问 Ember 应用程序的 url 是什么?要调试,请尝试启用转换记录(请参阅here);如果您不在 './test' 路线中,则不会有任何内容呈现到 {{outlet}}...
  • @jesenko 我在 /static/#/test
  • 转换日志的输出怎么样?
  • @jesenko Attempting URL transition to /。我现在在 /static/test 中。我已经尝试过 /static/test 和 /static/#/test
  • @jesenko 我发布了更新。

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


【解决方案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>

【讨论】:

  • 好吧,我取得了一些进展,现在它显示了模板但在&lt;body&gt;的底部
  • 我已经更新了我的答案,正确构建 rails 视图并将 ember 应用程序移动到单独的模板文件
  • 请注意,如果您从新项目开始,ember-cli-rails 可能是 ember-cli 和 rails 集成的最佳选择。
  • 我必须在创建应用程序时添加一个rootElement 参数,我希望有人告诉我..
猜你喜欢
  • 1970-01-01
  • 2011-05-15
  • 2013-09-03
  • 2013-11-13
  • 2019-01-12
  • 1970-01-01
  • 2014-09-09
  • 2018-10-30
  • 1970-01-01
相关资源
最近更新 更多