Ember.js 如何在ember中将属性从一个控制器传递到另一个控制器,而不涉及路由';设置控制器?

Ember.js 如何在ember中将属性从一个控制器传递到另一个控制器,而不涉及路由';设置控制器?,ember.js,model,controller,ember-cli,query-parameters,Ember.js,Model,Controller,Ember Cli,Query Parameters,如何在ember中将属性从一个控制器传递到另一个控制器,而不涉及路由的setupController在最简单的情况下,您可以将一个控制器注入另一个控制器: // app/controllers/signup.js import Controller, { inject as controller } from '@ember/controller'; export default Controller.extend({ login: controller('login'), sig

如何在ember中将属性从一个控制器传递到另一个控制器,而不涉及路由的setupController

在最简单的情况下,您可以将一个控制器注入另一个控制器:

// app/controllers/signup.js

import Controller, { inject as controller } from '@ember/controller';

export default Controller.extend({
  login: controller('login'),

  signup() {
    // Do some requests to create new user

    // And then set properties on login controller
    this.login.set('formData', {
      email: this.get('formData.email'),
      password: this.get('formData.password'),
    });
  }
});

对于更复杂的事情,服务是好的。

为什么要这样做?但就我个人而言,我喜欢使用服务进行更高/应用程序级别的交流。说得很好…完美的答案。成功了!非常感谢。虽然这确实有效,但这是一种正在普遍消失的旧模式。在某种程度上,我认为它会被弃用…@acorncom你会推荐什么?我使用这种方法非常方便often@GennadyDogaev我推荐一种服务,因为当您需要这种类型的控制器间访问时,它可能会随着时间的推移而增长。用两个控制器做这件事感觉不太糟糕。但是,你需要在另一个控制器中,然后在一个组件中,然后。。。很快你就会搞得一团糟