在Ember中,可以通过使用服务(service)来将属性从一个控制器传递到另一个控制器,而不涉及路由的setupController方法。
ember generate service <service-name>
来生成一个服务文件。propertyToPass
的属性:// app/services/my-service.js
import Service from '@ember/service';
export default Service.extend({
propertyToPass: null
});
// app/controllers/sending-controller.js
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
export default Controller.extend({
myService: service(),
init() {
this._super(...arguments);
this.get('myService').set('propertyToPass', 'Hello from sending controller');
}
});
// app/controllers/receiving-controller.js
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
export default Controller.extend({
myService: service(),
receivedProperty: Ember.computed('myService.propertyToPass', function() {
return this.get('myService.propertyToPass');
})
});
在上述代码中,我们使用了一个计算属性(computed property)来监听myService.propertyToPass
的变化,并将其值赋给receivedProperty
。
这样,属性就成功从一个控制器传递到了另一个控制器,而不需要涉及路由的setupController方法。
请注意,这里的示例仅演示了如何在Ember中传递属性,实际应用中可能需要根据具体情况进行适当的修改和调整。
推荐的腾讯云相关产品:腾讯云云服务器(CVM),腾讯云云数据库 MySQL版(CDB),腾讯云对象存储(COS)。
腾讯云产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云