在 Angular Dependency Injector 中,当我们注入 Type 时,我们会将它们包含在 providers 数组中(可能在@NgModule
装饰器或@Component
装饰器中。但是在以下实例中,当我们以编程方式导航时,我们将Router
实例注入构造函数,但我们不在 providers 数组中提供就像我们通常在 Angular Dependency Injector 中所做的那样。
这里与 Angular Dependency Injector 有什么不同?供您参考,我将附上两个代码
程序化导航 - 代码
import { Router } from '@angular/router';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
constructor(private router:Router) { }
ngOnInit() {
}
onLoadServer(){
this.router.navigate(['servers']);
}
}
Angular Dependency Injector 方式 - 代码
import { Component,Input} from '@angular/core';
import { LoggingService } from '../logging.service';
@Component({
selector: 'app-account',
templateUrl: './account.component.html',
styleUrls: ['./account.component.css'],
providers:[LoggingService]
})
export class AccountComponent {
@Input() account: {name: string, status: string};
@Input() id: number;
constructor(private logginService:LoggingService){
}
onSetTo(status: string) {
this.logginService.loggingStatusChange(status);
}
}