2016-01-21 156 views
5

我开始将我的一个Angular 1指令迁移到Angular 2组件。Angular 2组件中'controllerAs'指令属性的模拟是什么?

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

看着official ComponentMetadata doc我没有看到任何可以用来代替这个的属性。

+0

组件的每个''''将在'this'内有它们的上下文,所以你不需要在'Angular2'这里创建控制器别名,你将直接访问HTML上的'this'上下文。 –

回答

9

没有相当于controllerAs在角2。例如,给定的这个控制器类和模板:

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

相关问题