emberjs没有显示视图

时间:2014-08-18 15:36:21

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

我刚开始学习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">

这是我的余烬应用代码:

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 hook

     

转换#0:应用程序:调用deserialize hook

     

转换#0:应用程序:调用afterModel hook

     

转换#0:作业:调用beforeModel hook

     

转换#0:作业:调用反序列化挂钩

     

转换#0:作业:调用afterModel hook

     

转换#0:解决了目的地路线上的所有模型;最终确定过渡。

     

过渡到&#39;工作&#39;

     

转换#0:转换完成。

     

Ember Debugger Active

所以我认为它实际上是路由到&#39;工作&#39;但我不知道为什么模板似乎没有渲染和显示。任何帮助表示赞赏。

经过多次游戏后,我发现如果我在rails视图中声明了这个

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

然后它呈现此模板并正确显示。那么也许我在模板中没有注意到一个命名问题?

谢谢,

约什

1 个答案:

答案 0 :(得分:0)

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

如果您有兴趣,这里有关于路线和资源之间差异的好文章。

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