【发布时间】:2019-09-29 01:54:57
【问题描述】:
我正在尝试在我的一个组件上使用共享服务。当我使用应用程序根组件时,它工作正常。当我尝试在另一个模块/仪表板上使用时,出现错误。
shared/authorize.service.ts
@Injectable()
export class AuthorizationService {
isDoingSomething() {
return "Some Boolean value";
}
}
dashboard/header/header.component.ts
@Component({
selector: 'app-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.css']
})
export class HeaderComponent {
constructor(private _auth: AuthorizeService,
private _router: Router) { }
}
dashboard/header/header.component.html
<mat-toolbar color="primary" role="heading">
<div fxFlex fxLayout fxLayoutAlign="flex-end">
<ul fxLayout fxLayoutGap="10px" class="navigation-items">
<li routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}">
<a routerLink="/home">Home</a>
</li>
<li routerLinkActive="active">
<a *ngIf="_auth.isDoingSomething()" routerLink="/docall">Rest Call</a>
</li>
</ul>
</div>
</mat-toolbar>
**HeaderComponent.html:6 ERROR TypeError:** Cannot read property 'isDoingSomething' of undefined at Object.eval [as updateDirectives] (HeaderComponent.html:6) at Object.debugUpdateDirectives [as updateDirectives] (core.js:23911) at checkAndUpdateView (core.js:23307)
【问题讨论】:
-
为你的服务注入器试试这个
@Injectable({ providedIn: 'root' })
标签: angular typescript angular-services