我开始将我的一个Angular 1指令迁移到Angular 2组件。
我当前使用的指令具有controllerAs: 'ctrl'
属性,并且指令的模板在访问属性时使用'ctrl.'
前缀。
查看official ComponentMetadata doc我没有看到任何可用于代替此属性的属性。
答案 0 :(得分:9)
Angular 2中没有等效的controllerAs
。例如,给定此控制器类和模板:
@Component({
selector: 'component-a',
template: `<div class="component-a">
<div class="counter" (click)="increment()">Component A: {{counter}}</div>
</div>`
})
export class ComponentA {
counter = 0;
increment() {
this.counter += 1;
}
}
在方法increment()
中,this
被绑定到该特定组件本身的控制器实例。在模板中,可以通过{{counter}}
访问计数器。
我们可以看到没有机制来命名控制器,因为我们已经可以使用默认功能访问它。
您可以认为controllerAs
机制已集成在Angular 2的默认组件功能中,或者该功能已被删除,因为它不再需要,具体取决于您的查看方式。