2017-01-20 20 views
1

在我的应用程序将需要创建一个函数库,以从不同的组件进行访问。做这个的最好方式是什么?我是否需要为所有功能或类或模块或组件提供服务?角2个函数库

在这个库中,如果我把从一个组成部分,该功能需要在调用访问变量的函数,这将是可能的吗?

+0

非详细的解答:创建一个服务,导入服务,则调用服务的功能从其他组件 – jhhoff02

回答

2

如果它只是一个断辅助功能组中的一个最简单的方法是创建您的helper方法的@Injectable服务再注入到这一点,需要他们的任何部件。你也可以提供公共变量,所以它们可以在你的html中访问。

@Injectable() 
export class Helpers { 
    helper1() { return "hello"; } 
    helper2(x) { return x + 1 } 
} 

@Component({ 
    providers: [Helpers], 
    template: "<div>{{helper1()}}</div>"  // will display 'hello' 
)} 
export class MyComponent { 
    public helper1: Function = Helpers.helper1; 

    constructor() { 
     console.log(Helpers.helper2(5)); // will output '6' 
    } 
} 

这对一组简单的随机效用函数很有用。如果您需要更深入的内容,请解释,我们可以提供备用解决方案。

+0

这是伟大的,它是我真正需要的是肯定的。我以这种方式在这里做了,但发现了一个限制。在我的服务中,我无法访问组件中的变量,因为我使用的是模式驱动的表单,在某些需要访问表单的函数中。是否有可能不发送表单作为参数? –

+0

啊作为服务没有,如果它完全分开,你可以通过参数传递,但你说你不想这样做。如果你需要以一种有意义的方式与组件进行交互,你可能会想创建一个组件类消费这项服务的同时,通过@input和输出 –

+0

理解父组件进行交互。我会尽力按照这种方式。非常感谢约书亚。 –