我知道这是一个广泛的问题,但我没有找到具体的答案,现在我觉得我只需要采取霰弹枪的方法。
我正在尝试在 rails 应用程序中加载 ember 应用程序。我有 ember_controller.rb:
class EmberController < FrontendController
layout 'ember'
def load
end
end
我的 Rails 路线如下所示:
MdmFrontEnd::Application.routes.draw do
resources :sessions, only: [:create, :new, :destroy]
match '/signin', to: 'sessions#new'
match '/signout', to: 'sessions#destroy', via: :delete
match '*path' => 'ember#load'
root to: 'ember#load' #makes the root of the app, the ember root.
end
我的导轨布局如下所示:
!!! 5
%html
%head
%meta{charset:"utf-8"}
%title= t("layouts.mobile_manager")
%meta{name:"viewport", content:"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" }
%link{rel: "icon", type:"image/png", href:"/assets/favicon_16x16.png"}
= javascript_include_tag "i18n"
:javascript
window.locale = "<%= I18n.locale %>";
= stylesheet_link_tag 'application', media: 'all'
= csrf_meta_tags
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
-if Rails.env.production?
:javascript
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-33246783-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
= render 'shared/js_constants'
= javascript_include_tag 'app_ember'
%body
我正在 app_ember.coffee 中使用以下内容初始化一个新的 ember 应用程序:
#= require jquery
#= require jquery_ujs
#= require handlebars
#= require ember
#= require_self
#= require_tree ./app/routes
#= require_tree ./app/controllers
#= require_tree ./app/models
#= require_tree ./app/templates
#= require_tree ./app/views
window.Mdm = Ember.Application.createWithMixins
LOG_TRANSITIONS: true
ajax: ->
$.ajax.apply(this, arguments)
getUrl: (path) ->
"/#{path}"
然后我有我的模板,application.hbs 和 index.hbs,在应用程序内部有一个 {{outlet}}。
但是当我尝试渲染根时,我只是得到一个空白屏幕。
我知道它会看到模板,因为在控制台中,当我运行 Ember.TEMPLATES 时,它会列出每个模板对象。
我觉得这是 b/t rails 和 ember 的问题,但我不知道。
感谢您的任何想法!
编辑:: 我的控制台
如您所见,它正在加载我的模板对象,但它也说它找不到应用程序或索引模板。我的模板目录的命名和位置与其他目录一样 - 模型、控制器等。