将现有的 Rails 路线/应用程序迁移到 EmberJS



我正在尝试使用 emberjs 在我的页面中呈现一些页面,以便不会重新加载内容

我遇到的问题是似乎没有任何渲染

应用.js

#= require jquery
#= require jquery_ujs
#= require jquery.ui.all
#= require date
#= require misc
#= require foundation
#= require handlebars
#= require ember
#= require ember-data
#= require_self

App = Ember.Application.create(
LOG_TRANSITIONS: true
ready: ->
console.log "App ready"
return
)
App.Router.map ->
@resource "admin/pages",
path: "/admin/pages"
return
App.IndexRoute = Ember.Route.extend(redirect: ->
@transitionTo "admin/pages"
return
)
App.NewslinksRoute = Ember.Route.extend(model: ->
App.Page.find()
)
DS.RESTAdapter.reopen namespace: "admin/pages"
App.Store = DS.Store.extend(revision: 13)
App.Page = DS.Model.extend(name: DS.attr("string"))
# for more details see: http://emberjs.com/guides/application/
#window.Grokphoto = Ember.Application.create()
$ ->
$(document).foundation()
return

路线.rb

match 'admin' => 'admin/pages#index'
namespace :admin do
resources :events, :only => :index
resource :photographer, :only => [:edit, :update]
resources :pages
resources :posts
resources :galleries
resources :private_galleries do
get :invite, :on => :member
put :send_invite, :on => :member
end
resources :photos, :only => [:edit, :update, :destroy] do
put 'sort', :on => :collection
end
end

然后在/assets/javascripts/templates/admin/page/index.hbs 中,我有以下内容

<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Ember - Latest" />
<meta charset=utf-8 />
<title>Ember</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://builds.emberjs.com/handlebars-1.0.0.js"></script>
<script src="http://builds.emberjs.com/ember-latest.js"></script>
<script src="http://builds.emberjs.com/ember-data-latest.js"></script>
</head>
<body>
<script type="text/x-handlebars">
<h2>Ember Works</h2>
</script>
</body>
</html>

如果我能让它渲染出来,我应该能够解决其余的问题

2分钟内的Emberjs和Rails

rails new app
cd app
# remove gem 'coffee-rails' from Gemfile if not needed
echo "gem 'ember-rails'" >> Gemfile
echo "gem 'ember-source', '1.3.0'" >> Gemfile
bundle
rails g ember:bootstrap
rails g controller home index
(Remove the lines in the view file)
# config/routes.rb
root 'home#index'
# config/environments/development.rb
echo "Hello world" >> app/assets/javascripts/templates/index.hbs

http://localhost:3000瞧:)

导轨正常流量

以下是 Rails 中的 emberjs 的工作原理。emberjs只是一个甚至可以进行路由(像/#/posts一样更改URL的javascript)。

在 Rails 中,当请求/admin在您的案例中哪个映射到'admin/pages#index'时,将执行这些操作。

  • 转到特定控制器操作。
  • views/layouts/application.html.erb呈现布局文件
  • 然后在其中生成您的admin/pages#index视图。

与恩贝斯

当你也有 emberjs 时也会发生同样的事情,没有什么特别的,没有什么改变这个顺序,除了你不需要从你的admin/pages#index视图文件渲染任何东西,它可以是空白的。

但是你需要layouts/application.html.erb,因为你所有的javascript都在它下面

<%= javascript_include_tag "application" %>

现在流程为/admin

  • 转到控制器操作。
  • 渲染布局文件,其中还具有也涉及EmberJS的JavaScript,以及再次与JS相关的车把。
  • 生成视图文件,该文件可以是空白。因为 emberjs 将为我们插入编译的车把模板。

让 emberjs 在 Rails 中工作。

  • 您的布局文件需要与您的应用程序一起加载 javascript.js。
  • 然后创建一个文件app/assets/javascripts/templates/index.hbs

    世界您好

它应该有效!我建议你尝试创建新的rails项目以获得一些想法,然后tehn开始迁移。

最新更新