@injectable和es6模块的角度服务

@injectable和es6模块的角度服务

问题描述:

在angular中,我们需要创建@Injactable服务类并将其提供给我们的项目。@injectable和es6模块的角度服务

从理论上讲,我们可以导入es6模块,也可以作为单例服务执行。

除了这不是“角度方式”,为什么这种方法不那么普遍?

角方式

import { Injectable } from '@angular/core'; 
@Injectable() 
export class fo { 
    getFo():{ 
    } 
} 

ES6方式

const bla = [] 
    const fo() => {return bla} 
    export { 
     fo 
    } 
+0

你的两个例子没有任何共同之处。 – zeroflagL

@Injectable()只需要当您的服务注入等服务。

例子:

@Injectable() 
export class fo { 
    constructor(private myOtherService: MyOtherService){} 
} 

其他你是正确的,它实际上返回一个const同样的事情。但是,如果您想知道添加注释和逻辑是一种好的做法。

来源:https://angular.io/docs/ts/latest/cookbook/dependency-injection.html#!#-injectable-

技术上,@Injectable()装饰只需要拥有自己的依赖


不久,我们使用 @Injectables获取/设置服务类数据和组件之间以及我们的应用程序之间的通信,这些都是我们依赖注入树的一部分。 关于为什么您应该使用 @Injectable(),官方文档有更深入的指南。

为什么@Injectable()?

@Injectable()标志着一个类可用于喷油器实例化。一般来说,试图实例化未标记为@Injectable()的类时,注入器会报告错误。

来源:https://angular.io/docs/ts/latest/guide/dependency-injection.html#!#why--injectable--

+0

_“除此之外,你说得对,它是实用的同一件事”_绝对不是。 – zeroflagL

+0

@zeroflagL这是一个夸大的声明,我很遗憾我写道:D但由于OP只使用服务返回一个'const';对于这种用法,我想他们** **实际上是一样的东西先生。当然,我认为OP的'getFo()'方法返回与第二个例子中相同的'const'。 – echonax

+0

你是对的,在这种情况下,它可能并不重要,但它不是一个真实世界的例子。问题中的例子只是为了说明这一点,答案不应局限于此。 – zeroflagL