templateUrl : 'home.html'
..
providers: [NavService]
..
private navService: NavService,
..
<li *ngFor="let state of states; let i=index"
[class.active]="navService.isCurrentState(state)">
<span class="name">{{navService[state].name}}</span>
似乎不起作用,我在这里缺少什么?如何在组件模板中访问我的服务?
答案 0 :(得分:10)
组件类中定义的每个属性都可以在模板中使用。
首先,您可以检查navService
是否具有正确的值:
@Component({
(...)
providers: [NavService]
})
export class SomeComponent {
constructor(public navService: NavService) {
console.log(navService); // <----
}
}
答案 1 :(得分:0)
代码的问题是您将服务声明为私有。 根据文档(angular.io/tutorial/toh-pt4):“ messageService属性必须是公共的,因为您将在模板中绑定到它”。 如果您将其更改为costructor中的public,则可以使用模板中的服务。