小编Dav*_*vid的帖子

我的Rails路由应该与pushState Ember.js路由一起使用?

简而言之...

在构建Ember.js应用程序以持久化到Rails应用程序时,我应该如何处理Rails路由/视图?我认为我只需要Rails来呈现application.html.erb布局,以便Ember.js应用程序初始化并处理路由/视图/模板.

细节:

具体来说,如果我访问localhost:3000,在我的Ember.js应用程序有机会初始化之前,Rails会在项目控制器上执行"索引"操作.它会抱怨缺少索引模板.我没有index.html.erb视图,因为我的Ember.js应用程序有一个视图/模板.

我应该为Rails应用程序创建空白视图吗?我的Rails控制器操作应该返回一些东西以防止它呈现视图吗?或者我希望构建正常的Rails视图以与Ember.js应用程序视图/模板一起使用?

如果我创建一个空白的projects/index.html.erb并访问localhost:3000,Rails将呈现它,Ember.js将从那时开始初始化并处理路由.但是,如果我直接访问localhost:3000/projects/new,Rails会抱怨项目控制器中没有新操作.我对Rails端的项目控制器没有"新"操作,因为我不需要它.我的Ember.js应用正在处理该视图/模板.

最后,我只是不确定在Rails应用程序旁边使用Ember.js的约定.

感谢您的帮助,并阅读此...

编辑:

我遗漏了我试图使用Ember.js路由器使用pushState历史记录的能力的细节.这将留给我非hashbang URL.这就是为什么我遇到处理Rails竞争路由我的应用程序的问题的原因之一.

Rails应用程序布局:

<html> 
<body>   
  <section id="design-archive"></section>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Ember.js App:

@DA = Em.Application.create
  name: 'Design Archive'
  VERSION: '0.1'
  rootElement: '#design-archive'
  ApplicationController: Em.Controller.extend()
  ApplicationView: Em.View.extend
    templateName: 'application'

DA.initialize(DA.Router)
Run Code Online (Sandbox Code Playgroud)

Rails路线:

DesignArchive::Application.routes.draw do
  resources :clients, :only => [:new, :create, :index, :show, :destroy]
  resources :projects, :only => [:new, :create, :index, :show, :destroy]

  root :to => 'projects#index'
end
Run Code Online (Sandbox Code Playgroud)

Ember.js路线:

DA.Router = Em.Router.create
  location: …
Run Code Online (Sandbox Code Playgroud)

routes ruby-on-rails ember.js ember-data

10
推荐指数
2
解决办法
3885
查看次数

如何与Ember.js和ember-data创建has_and_belongs_to_many关系?

是否可以与Ember.js和ember-data创建hasAndBelongsToMany关系?

编辑:添加ActiveRecord模型示例以澄清.

class Project < ActiveRecord::Base
  has_and_belongs_to_many :tags
end

class Tag < ActiveRecord::Base
  has_and_belongs_to_many :projects
end
Run Code Online (Sandbox Code Playgroud)

我有一个关联表"projects_tags"链接project_id <=> tag_id.

ruby-on-rails has-and-belongs-to-many ember.js ember-data

7
推荐指数
1
解决办法
1882
查看次数

如何使用Yeoman而不是指南针?

如何在没有指南针的情况下设置Yeoman + Grunt.js来编译Sass?我想用thinkbot的Bourbon而不是指南针.我是否需要为此创建自定义生成器,还是将标志传递给已存在的Yeoman生成器?

sass gruntjs yeoman bourbon compass-sass

6
推荐指数
2
解决办法
2527
查看次数

ember-simple-auth密码更新和重置

我正在使用ember-simple-auth和我的Ember.js应用程序的Devise适配器.我需要为用户创建一种方法来执行以下操作:

  1. 更新密码(使用新密码和确认字段)
  2. 恢复/重置密码

有没有办法用ember-simple-auth或推荐的方法来做到这一点?我最初的想法是将它构建到我的Ember应用程序中,但这是我应该在Ember应用程序之外构建的吗?

change-password forgot-password password-recovery ember.js ember-simple-auth

5
推荐指数
1
解决办法
1588
查看次数

React Native Reload和Dev Tools不起作用

TL; DR - 我的React Native项目成功运行/渲染.设备震动能力的重装或开发工具无法正常工作.


我按照本指南在现有项目中设置了React Native .我能够使用以下内容成功呈现我的React Native视图:

  1. 在项目根目录中: (JS_DIR=pwd/js; cd node_modules/react-native; npm run start -- --root $JS_DIR)
  2. 在Xcode中构建并运行项目

但是,一旦模拟器运行,我就无法使用command+ r来重新加载JavaScript,也无法使用command+ control+ z来显示开发人员工具.

我没有react-native init <ProjectName>用来创建项目.我正在将React Native添加到现有的Swift项目中.我没有使用,react-native run-ios因为它抛出以下错误:

** BUILD FAILED **


The following build commands failed:
    CompileC /Users/username/Sites/iOS/project-name/build/Build/Intermediates/Pods.build/Local-iphonesimulator/FXBlurView.build/Objects-normal/x86_64/FXBlurView.o FXBlurView/FXBlurView/FXBlurView.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC /Users/username/Sites/iOS/project-name/build/Build/Intermediates/Pods.build/Local-iphonesimulator/FXBlurView.build/Objects-normal/i386/FXBlurView.o FXBlurView/FXBlurView/FXBlurView.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC /Users/username/Sites/iOS/project-name/build/Build/Intermediates/Pods.build/Local-iphonesimulator/FXBlurView.build/Objects-normal/x86_64/FXBlurView-dummy.o Target\ Support\ Files/FXBlurView/FXBlurView-dummy.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC /Users/username/Sites/iOS/project-name/build/Build/Intermediates/Pods.build/Local-iphonesimulator/FXBlurView.build/Objects-normal/i386/FXBlurView-dummy.o Target\ Support\ Files/FXBlurView/FXBlurView-dummy.m normal …
Run Code Online (Sandbox Code Playgroud)

ios reactjs react-native

5
推荐指数
1
解决办法
2336
查看次数

如何向ReasonReact组件添加自定义方法?

我是ReasonML的新手.我能够使用ReasonReact成功创建无状态组件,但我还没弄清楚如何向组件添加自定义方法(例如Next.js的静态getInitialProps).

尝试getInitialProps在组件上定义方法时,我收到The field getInitialProps does not belong to type ReasonReact.componentSpec错误.

我应该如何在React组件上添加此自定义方法?

零件

let str = ReasonReact.stringToElement;

let component = ReasonReact.statelessComponent("Index");

let make = (~items: Listings.items, _children) => {
  ...component,
  getInitialProps: () =>
    Js.Promise.(
      Endpoints.fetchListings()
      |> then_(Fetch.Response.json)
      |> then_((json) => Js.Json.decodeArray(json) |> resolve)
    ),
  render: (_self) =>
    <div>
      (List.length(items) > 0 ? <Listings items /> : <Loading />)
    </div>
};

let default =
  ReasonReact.wrapReasonForJs(
    ~component,
    (jsProps) => make(~items=jsProps##items, [||])
  );
Run Code Online (Sandbox Code Playgroud)

错误

We've found a …
Run Code Online (Sandbox Code Playgroud)

reactjs reason nextjs reason-react

5
推荐指数
1
解决办法
400
查看次数