从DOM调用服务功能 - Angular 2

时间:2016-09-30 07:43:05

标签: javascript angularjs angular

有没有办法从DOM调用服务中定义的函数,我可以从DOM调用组件函数但是如何调用服务函数,如下所示:

@Injectable()
export class UtilsService {
    constructor() {}

    getSessionId() {}
}

<button name="getsession" (click)="UtilsService.getSessionId()">Get Session</button>

2 个答案:

答案 0 :(得分:7)

视图绑定中表达式的范围仅限于组件类实例。 不支持直接从视图访问静态,全局,类型(枚举),....

为了能够在视图中引用它,必须可以通过组件类实例访问它:

constructor(public utilsService:UtilsService) {}
<button name="getsession" (click)="utilsService.getSessionId()">Get Session</button>

答案 1 :(得分:3)

通常Gunter的回答是完美的,我只是想说在视图上公开那些必要的功能。不要在视图(Law_of_Demeter)上公开服务中的所有内容。

查看

<button name="getsession" (click)="getSessionId()">Get Session</button>

组件类

export class MyComponent {
    getSessionId: any;
    constructor(private utilsService:UtilsService) {
       this.getSessionId = utilsService.getSessionId;
    }
}