当前位置: 首页 > 工具软件 > ember-let > 使用案例 >

Ember controller之间通信

万俟穆冉
2023-12-01

Ember controller之间通信

使用Ember做项目有一段时间了,查看项目之前的代码,当一个controller用到另一个controller的数据时,总是使用将变量存到localStorage中的方法,虽然这种方式是可以实现功能的,但是有很多局限性:

1、无法直接监听localstorage的变化
2、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,导致页面变卡
3、在浏览器隐私模式下,不能读取localStorage
4、localStorage不能被爬虫抓取到

所以我认为还是使用,Ember自身的通信机制比较好。

使用Ember.inject方法引入controller,就可以在当前界面使用引入的controller了

// 引入controller
headerController: Ember.inject.controller('header');

getData(){
	// 使用get方法获取到headerController
	let headerController = this.get('headerController');
	// 获取headerController中的数据
	let value = headerContrller.get('value');
	// 调用headerController中的方法
	headerController.send('func');
}
 类似资料: