Ember将组件的变量访问到其他控制器

时间:2016-01-19 11:13:28

标签: ember.js

如何从/component/sales-order.js

访问/routes/sales-order.js中声明的变量

有可能吗?

2 个答案:

答案 0 :(得分:1)

假设你的意思是组件的属性,那么基本上你不能,也不应该。你为什么这么想?

路线管理路线;它不知道最终呈现的细节。例如,路由可以两次实例化相同的组件。然后你想从哪个位置检索值?

您认为需要这样做的事实表明您的应用程序的结构存在某种问题。

将此视为如何在组件和路由之间进行通信的更一般问题,有各种方法,但最基本的方法是让组件向上发送操作:

// thing/route.js
// Define the ultimate action to be invoked.
export default Ember.Route.extend({
  actions: {
    hiccup() { console.log("Hiccup!"); }
  }
});

// thing/template.hbs
// Invoke the component, and tie the action to something specific
{{component action='hiccup'}}

// component/component.js
// Define the component with an action.
export default Ember.Component.extend({
  actions: {
    go() { this.sendAction(); }
  }
});

//component/template.hbs
// Provide a button
<button {{action 'go'}}>Go!</button>

答案 1 :(得分:0)

首先将其导出然后导入

导出/component/sales-order.js

export const MY_VARIABLE = 2;

导入/routes/sales-order.js

import { MY_VARIABLE } from '../components/sales-order'
console.log(MY_VARIABLE) // 2