Я застрял, пытаясь найти ответ или решение, казалось бы, очень простой проблемы.
Я недавно запустил приложение 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 ...