我假设您希望将这些方法公开给组件的模板,这就是您将它们绑定到 $scope 的原因。
要在 Angular 中执行此操作,您只需将此服务作为依赖项作为公共服务注入。一旦您作为公共服务注入,您就可以直接从组件模板本身调用这些方法。
假设我希望这些方法可以在我的AppComponent 的模板中访问。我可以这样做:
import { Component, OnInit } from '@angular/core';
import { ClockingMenuService } from 'path-to-the-service';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent implements OnInit {
constructor(public clockingMenuService: ClockingMenuService) {}
ngOnInit() {
console.log(this.clockingMenuService.permissions);
console.log(this.clockingMenuService.data);
}
}
现在,在您的app.component.html 中,您可以像这样使用此服务上的方法:
<button (click)="clockingMenuService.decrementWeek()">Call decrementWeek</button>
<button (click)="clockingMenuService.incrementWeek()">Call incrementWeek</button>
注意:将服务公开暴露给模板通常不被认为是一种好的做法。因此,您可以在类中创建方法引用,然后在模板中使用这些引用。更新后的组件如下所示:
import { Component, OnInit } from '@angular/core';
import { ClockingMenuService } from 'path-to-the-service';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent implements OnInit {
decrementWeek;
incrementWeek;
constructor(private clockingMenuService: ClockingMenuService) {}
ngOnInit() {
console.log(this.clockingMenuService.permissions);
console.log(this.clockingMenuService.data);
decrementWeek = this.clockingMenuService.decrementWeek;
incrementWeek = this.clockingMenuService.incrementWeek;
}
}
这是模板的外观:
<button (click)="decrementWeek()">Call decrementWeek</button>
<button (click)="incrementWeek()">Call incrementWeek</button>