我正在尝试在我的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'
我必须忽略一些非常简单的事情。任何帮助将不胜感激。
答案 0 :(得分:0)
突然,放弃后,控制台中出现一个错误,说Ember-Data正在加载,但没有定义Tabbasco2.Store
。定义它之后就有效了。这是我之前定义的奇怪之处。
所以,我不知道它为什么突然起作用,但它确实有效。