Angular 2组件中'controllerAs'指令属性的类比是什么?

时间:2016-01-21 16:00:58

标签: angularjs angular angular2-directives

我开始将我的一个Angular 1指令迁移到Angular 2组件。

我当前使用的指令具有controllerAs: 'ctrl'属性,并且指令的模板在访问属性时使用'ctrl.'前缀。

查看official ComponentMetadata doc我没有看到任何可用于代替此属性的属性。

1 个答案:

答案 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的默认组件功能中,或者该功能已被删除,因为它不再需要,具体取决于您的查看方式。