【问题标题】:Could not find "application" template or view. Nothing will be rendered Emberjs RailsAPI找不到“应用程序”模板或视图。什么都不会被渲染 Emberjs RailsAPI
【发布时间】:2013-09-01 20:49:33
【问题描述】:

我一直在努力寻找一个看似非常简单的问题的答案或解决方案。

我最近启动了 RailsAPI 应用程序。我决定使用 EmberJS 并按照最近找到的教程 here

当我转到我的应用程序的索引页面时,我看到的只是一个空白屏幕,并且我的模板不会呈现。由于某种原因,Ember 似乎无法找到我的模板。

这是我在控制台中看到的:

DEBUG: ------------------------------- ember-1.0.0.js?body=1:394
DEBUG: Ember.VERSION : 1.0.0 ember-1.0.0.js?body=1:394
DEBUG: Handlebars.VERSION : 1.0.0 ember-1.0.0.js?body=1:394
DEBUG: jQuery.VERSION : 1.9.1 ember-1.0.0.js?body=1:394
DEBUG: ------------------------------- ember-1.0.0.js?body=1:394
generated -> route:application Object {fullName: "route:application"} ember-1.0.0.js?body=1:394
generated -> route:index Object {fullName: "route:index"} ember-1.0.0.js?body=1:394
generated -> controller:application Object {fullName: "controller:application"} ember-1.0.0.js?body=1:394
Could not find "application" template or view. Nothing will be rendered Object {fullName: "template:application"} ember-1.0.0.js?body=1:394
generated -> controller:index Object {fullName: "controller:index"} ember-1.0.0.js?body=1:394
Could not find "index" template or view. Nothing will be rendered Object {fullName: "template:index"} ember-1.0.0.js?body=1:394
Transitioned into 'index' ember-1.0.0.js?body=1:394
=> Ember.TEMPLATES
   # Object {}

如您所见,Ember.TEMPLATES 是空的。我当前的应用结构是这样的

Dojo
  - app
    - assets
      - javascripts
        - templates
          - application.hbs
          - index.hbs
        - application.js.coffee
        - router.js.coffee
    - controllers

等等,我会根据需要更新。它几乎是一个基本的 Rails 应用程序。

我的相关文件如下所示:

application.js.coffee

#= require jquery-1.9.1
#= require handlebars-1.0.0
#= require ember-1.0.0
#= require ember-data
#= require_self
#= require router
#= require_tree ./models
#= require_tree ./controllers
#= require_tree ./views
#= require_tree ./templates
#= require_tree ./routes

window.AppDojoApi = Ember.Application.create
  LOG_TRANSITIONS: true
  LOG_BINDINGS: true
  LOG_ACTIVE_GENERATION: true
  LOG_VIEW_LOOKUPS: true

console.log Ember.TEMPLATES

templates/application.hbs

<div class='container'>
  <div class='content'>
    <div class='row'>
      <div class='span12'>
        <div class='page-header'></div>
          {{outlet}}
        </div>
      </div>
    </div>
  </div>
</div>

模板/index.hbs

<h1> Hello World </h1>

所有必要的文件(ember、handlebars、jQuery)都被正确渲染,因为我在控制台中没有看到任何错误,它们在生成的 HTML 中。

我正在使用 gem handlebar_assets 编译 AssetsPipeline 的资产,并且正在正确生成模板。

为什么 ember 找不到模板?感谢您的帮助

更新这里是源代码,如果有人有兴趣看看它https://github.com/AppDojo/AppDojo-API/tree/ember-railsapi

解决方案

设置HandlebarsAssets::Config.ember = true 将模板的正确模板存储设置为Ember.TEMPLATES。我错过了 Handlebars 的 s...

【问题讨论】:

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


    【解决方案1】:

    我猜你的问题在于把手模板文件扩展名应该是.hbs而不是.hb,尝试将你的模板重命名为:

    index.hbs
    application.hbs
    foo.hbs
    ...
    

    希望对你有帮助。

    【讨论】:

    • 我在发布问题后确实看到了这一点。但是,这并不能解决我的问题。 Ember 没有找到我的模板。显然,handlebar_assets gem 将它们放在一个名为 HandlebarTemplates 的对象中。有没有办法告诉 Ember 从那里得到它们?
    • @LeoCorrea,您的config/initializer/handlebars_assets.rb 设置正确吗?此外,在进行更改后,您应该手动执行 rm -rf tmp/* 以强制重新生成每个模板
    • 我确实将初始化程序设置为 ember 并执行了 rm -rf tmp/* 但没有运气
    • 所以,我在 ember = true 的HandlebarsAssets::Config 选项中缺少s。这似乎解决了它。谢谢!
    • @LeoCorrea,哦,很高兴我能提供一点帮助 :) 感谢您接受答案。
    猜你喜欢
    • 2019-05-16
    • 2015-01-10
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多