5

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

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

查看官方的 ComponentMetadata 文档,我没有看到任何可以用来代替这个的属性。

4

1 回答 1

10

在 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 的默认组件功能中,或者该功能已被删除,因为不再需要它,这取决于您如何看待它。

于 2016-01-21T16:11:26.067 回答