如何在Angular 2.x中创建Decorator指令?我是针对Angular的alpha版本编写的,并试图重现AngularJS (1.x)指令ngClass中的功能。下面是我在Angular中尝试使用自己的NgClass的一个片段。我想要做的是观察一些表达式的值,这些表达式可能包含从类名到布尔表达式的哈希。当这些表达式发生更改时,将在已应用装饰器的元素的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 = "";
}
}
}发布于 2015-04-29 05:26:21
截至2015年4月,Angular2参考文档中的语法为
@Decorator({ selector: '[primary]'})
class Primary {
const ructor(field:Field ) { ... }
} https://github.com/angular/angular/blob/master/modules/angular2/docs/core/02_directives.md
https://stackoverflow.com/questions/28727520
复制相似问题