首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

在Ember中,可以通过使用服务(service)来将属性从一个控制器传递到另一个控制器,而不涉及路由的setupController方法。

  1. 首先,在应用程序中创建一个服务(service)。可以使用Ember CLI命令ember generate service <service-name>来生成一个服务文件。
  2. 打开生成的服务文件,并在其中定义需要传递的属性。例如,假设我们要传递一个名为propertyToPass的属性:
代码语言:txt
复制
// app/services/my-service.js

import Service from '@ember/service';

export default Service.extend({
  propertyToPass: null
});
  1. 在发送属性的控制器中,注入刚刚创建的服务,并设置属性的值:
代码语言:txt
复制
// 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');
  }
});
  1. 在接收属性的控制器中,同样注入服务,并获取属性的值:
代码语言:txt
复制
// 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)。

腾讯云产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 通过 Request 对象实例获取用户请求数据

    到目前为止,我们在教程中所提供的大部分是静态页面。作为一门主要用于构建 Web 网站的动态语言,PHP 不仅可以处理静态页面,更重要的功能是处理用户动态请求,这才是一个 Web 2.0 网站最灵动的部分,从留言板到博客评论、到形形色色的社交网站、问答网站,无不是用户创造的内容让互联网更加绚烂多姿、五彩缤纷。而作为最流行的 PHP 框架,Laravel 自然也是为处理用户请求提供了丰富的工具集,从收集、验证、到过滤、编排,可谓是一应俱全,接下来,我们将通过三四篇教程的篇幅来为你详细介绍如何在 Laravel 项目中处理用户请求,首先,我们从收集用户请求数据开始。

    03
    领券