【问题标题】:emberjs not showing viewemberjs不显示视图
【发布时间】:2014-08-18 15:36:21
【问题描述】:

我刚开始学习 ember.js,我正在尝试将它集成到现有的 Rails 应用程序中。我正在使用 ember-rails gem,除了我在 rails 视图中调用 {{outlet}} 时没有显示我的模板之外,一切看起来都不错。这是我的代码的样子。

Rails 视图我希望我的 ember 应用程序在哪里

<script type="text/x-handlebars" data-template-name="application">
  <h1>test</h1>
  {{outlet}}
</script>
<div id="ember-root">

这是我的 ember 应用代码:

window.Resumecompanion = Ember.Application.create({
  LOG_TRANSITIONS: true, // basic logging of successful transitions
  LOG_TRANSITIONS_INTERNAL: true, // detailed logging of all routing steps
  rootElement: '#ember-root'
});


Resumecompanion.Router.reopen({});

Resumecompanion.JobsRoute = Ember.Route.extend({})

Resumecompanion.Router.map(function() {
  this.resource('jobs');
});

最后是位于 app/assets/javascripts/templates/jobs.handlebars 中的车把模板

<h1>Jobs</h1>

<p>Your content here.</p>
{{outlet}}

当我运行应用程序时,jobs.hanldebars 中的模板不显示。在控制台中我看到了这个:

正在尝试将 URL 转换为 /jobs

过渡 #0:应用程序:调用 beforeModel 挂钩

转换 #0:应用程序:调用反序列化挂钩

过渡 #0:应用程序:调用 afterModel 挂钩

过渡 #0:作业:调用 beforeModel 挂钩

过渡 #0:作业:调用反序列化挂钩

过渡 #0:作业:调用 afterModel 挂钩

过渡#0:解决了目标路线上的所有模型;完成过渡。

过渡到“工作”

过渡 #0:过渡完成。

Ember 调试器激活

所以我认为它实际上是路由到“工作”,但我不知道为什么模板似乎没有呈现和显示。任何帮助表示赞赏。

玩了一会儿后,我发现如果我在我的 Rails 视图中声明这个

<script type="text/x-handlebars" data-template-name="jobs">
  <h1>Jobs</h1>
  {{outlet}}
</script>

然后它会渲染这个模板并正确显示。那么模板中可能存在我不知道的命名问题?

谢谢,

乔什

【问题讨论】:

  • 您事先没有工作模板吗?当您点击应用程序的根目录时,应用程序模板是否显示?

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


【解决方案1】:

当您在路由器中定义路由或资源时,它还需要引用您的模板。如果您没有该名称的模板,则将没有任何内容可呈现。所以你的假设是正确的,你需要一个“作业”模板来帮助与你的路由器代码相对应。

如果您有兴趣,这里有一篇关于路线和资源之间区别的好帖子。

http://blog.trackets.com/2013/02/01/ember-dot-js-router-and-template-naming-convention.html

【讨论】:

    猜你喜欢
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多