Не удалось найти шаблон или представление приложения. Ничего не будет отображаться Emberjs RailsAPI

Я застрял, пытаясь найти ответ или решение, казалось бы, очень простой проблемы.

Я недавно запустил приложение RailsAPI. Я решил поиграться с EmberJS и следовал недавнему руководству, найденному здесь

Когда я перехожу на страницу индекса своего приложения, все, что я вижу, - это пустой экран, и мои шаблоны не отображаются. Похоже, что 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>

templates / index.hbs

<h1> Hello World </h1>

Все необходимые файлы (ember, handlebars, jQuery) отображаются правильно, потому что я не вижу никаких ошибок в консоли, и они находятся в сгенерированном HTML.

Я использую драгоценный камень handlebar_assets для компиляции ресурсов для AssetsPipeline, и шаблоны создаются правильно.

Почему Ember не может найти шаблоны? Спасибо за помощь

ОБНОВЛЕНИЕ Вот исходный код, если кому-то интересно взглянуть на него https://github.com/AppDojo/AppDojo-API/tree/ember-railsapi

РЕШЕНИЕ

Параметр HandlebarsAssets::Config.ember = true устанавливает правильное хранилище шаблонов для шаблонов на Ember.TEMPLATES. Мне не хватало s от Handlebars ...


person Leo Correa    schedule 01.09.2013    source источник


Ответы (1)


Я предполагаю, что ваша проблема заключается в том, что расширение файлов шаблонов ручек должно быть .hbs вместо .hb, попробуйте переименовать свои шаблоны в:

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

Надеюсь, это поможет.

person intuitivepixel    schedule 01.09.2013
comment
Я увидел это после того, как разместил вопрос. Однако это не решает мою проблему. Ember не находит мои шаблоны. Очевидно гем handlebar_assets помещает их в объект с именем HandlebarTemplates. Есть ли способ сказать Эмбер, чтобы она забрала их оттуда? - person Leo Correa; 02.09.2013
comment
@LeoCorrea, ваш config/initializer/handlebars_assets.rb правильно настроен? Также после внесения изменений вы должны вручную rm -rf tmp/* принудительно создать каждый шаблон заново. - person intuitivepixel; 02.09.2013
comment
У меня есть инициализатор, установленный на ember, и я сделал rm -rf tmp/*, но не повезло - person Leo Correa; 02.09.2013
comment
Итак, мне не хватало s в HandlebarsAssets::Config опциях для ember = true. Казалось, это решило проблему. Спасибо! - person Leo Correa; 02.09.2013
comment
@LeoCorrea, о, рад, что смог немного помочь :) В любом случае, спасибо, что приняли ответ. - person intuitivepixel; 02.09.2013