Каков правильный синтаксис для объявления декоратора Angular 2.0 в AtScript?

Как вы создаете директивы Decorator в Angular 2.x? Я пишу против альфа-версии Angular и пытаюсь воспроизвести функциональность, обнаруженную в директиве AngularJS (1.x) ngClass. Ниже приведен фрагмент моей попытки создать собственный NgClass в Angular. Я хотел бы наблюдать значение некоторого выражения, которое может содержать хэш имен классов для логических выражений. По мере изменения этих выражений имена будут добавляться или удаляться из свойства classList элемента, к которому был применен декоратор.

Что не так с этим синтаксисом? Декоратор даже не является подходящим шаблоном для работы, и, может быть, мне следует создать директиву шаблона? Тем не менее, каков синтаксис объявления директив с помощью Angular? Я приму ответы на ES5, но я бы предпочел ES6 и AtScript.

Для контекста, я писал это как подготовку к докладу, в котором я сделал предварительный обзор того, как будет писать приложения с Angular 2 и выше.

@Decorator({
  selector: '[ng-class]',
  bind: {'NgClass': 'class'},
  observe: {'ngClass': 'ngClassChanged'}
})
export class NgClass {
  constructor(element:NgElement) {
    this.element = element;
  }

  ngClassChanged(newValue) { 
    let classNames = [];
    if(newValue){
      console.log(newValue);
      this.element.className = newValue;
    }
    else {
        this.element.className = "";
    }

  }
}

person corntoole    schedule 25.02.2015    source источник
comment
Вы когда-нибудь разбирались с этим? Мне было бы интересно посмотреть, как это должно выглядеть.   -  person dvlsg    schedule 04.04.2015
comment
В ES6 нет декораторов. Вам понадобится ES8.   -  person Bergi    schedule 13.02.2016


Ответы (1)


По состоянию на апрель 2015 года синтаксис справочной документации Angular2 гласит:

@Decorator({ selector: '[primary]'}) 
class Primary {                      
   const ructor(field:Field ) { ... }  
}  

https://github.com/angular/angular/blob/master/modules/angular2/docs/core/02_directives.md

person Carlo Bonamico    schedule 28.04.2015