嵌入在Rails中的Ember.js不会加载(任何)视图

时间:2014-04-26 10:49:29

标签: ruby-on-rails ember.js ruby-on-rails-4 cloud9-ide

我正在尝试在我的Rails视图中嵌入一个Ember应用程序,但我无法获得一个简单的视图来加载。

gemfile的相关部分:

gem "ember-rails"
gem 'ember-source'
gem 'emblem-rails'

的application.js:

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require underscore
//= require ../../../vendor/assets/javascripts/paper.js/dist/paper-full.min.js
//= require handlebars
//= require ember
//= require ember-data
... some more
//= require_tree .

window.Tabbasco2 = Ember.Application.create({
    rootElement: '#ember',
    LOG_TRANSITIONS: true,
    LOG_BINDINGS: true,
    LOG_VIEW_LOOKUPS: true,
    LOG_STACKTRACE_ON_DEPRECATION: true,
    LOG_VERSION: true,
    LOG_TRANSITIONS_INTERNAL: true,
    LOG_ACTIVE_GENERATION: true,
    debugMode: true,
});

Tabbasco2.ApplicationView = Ember.View.extend({
  //templateName: 'nav'
})

Tabbasco2.ApplicationController = Ember.Controller.extend({
  init: function() {
    // Do stuff
  }
})

以下是正在加载的Rails视图的HAML:

... other html

#ember

    -# http://haml.info/docs/yardoc/file.REFERENCE.html#html5_custom_data_attributes
    %script#application{ :type => 'text/x-handlebars', :data => {:template_name => 'application' }}
      {{outlet}}

    %script{ :type => 'text/x-handlebars', :data => {:template_name => 'index' }}
      test

... other html

ember文件夹控制器,助手,模型等直接列在/ app / assets / javascripts下

关于这一点的奇怪之处在于,无论我怎样尝试,Ember都不会记录任何比ember本身的引导信息更多的内容。即使我可以在网络检查器中看到所有的javascript都被加载,该应用程序似乎似乎没有加载。在chrome控制台中:

DEBUG: -------------------------------
ember.js:3522DEBUG: Ember      : 1.5.0
ember.js:3522DEBUG: Handlebars : 1.3.0
ember.js:3522DEBUG: jQuery     : 1.10.2
ember.js:3522DEBUG: -------------------------------
ember.js:3522DEBUG: For more advanced debugging, install the Ember Inspector from     https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi

Ember确实可以找到模板,如Ember对象中所示:

> Ember.TEMPLATES
Object
    -> application: function (context, options) {
    -> index: function (context, options) {
    -> __proto__: Object

然而,它似乎甚至没有尝试加载任何东西。我应该设置不同的路由吗?重新排序控制器或视图?我的页面正在以下Rails路由下加载:

get '/partiture/show/:hash/', to: 'partitures#show'

我必须忽略一些非常简单的事情。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

突然,放弃后,控制台中出现一个错误,说Ember-Data正在加载,但没有定义Tabbasco2.Store。定义它之后就有效了。这是我之前定义的奇怪之处。

所以,我不知道它为什么突然起作用,但它确实有效。