2016-01-21 2 views
5

Я начал мигрировать одну из моих директив Angular 1 в компонент Angular 2.Каков аналог свойства директивы «controllerAs» в компоненте Angular 2?

Директива, в которой я нахожусь в настоящее время, имеет свойство controllerAs: 'ctrl', а шаблон директивы использует префикс 'ctrl.' при доступе к свойствам.

Глядя на official ComponentMetadata doc Я не вижу никаких свойств, которые могут быть использованы вместо этого.

+0

Каждый компонент класса будет иметь свой контекст внутри 'this', поэтому вам не нужно создавать псевдонимы контроллера здесь, в' Angular2', вы сразу получите доступ к контексту 'this' на HTML .. –

ответ

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 был интегрирован в функциональные возможности компонента по умолчанию для Углового 2 или эта функция была удалена по мере того, как ее больше не нужно, в зависимости от того, как вы ее смотрите.

Смежные вопросы