我正在玩 Angular 2,我想做的是有一个独立的指令直接分配给 HTML 中的一个元素。这可能吗?
指示:
import {Directive, ElementRef} from 'angular2/core';
@Directive({
selector: '[Slidernav]'
})
export class Slidernav {
constructor(private element: ElementRef) {
console.log('Slider Run');
}
}
我会将它分配给任何 HTML 元素,如下所示:
<div slidernav>Some content</div>
我问的原因是因为我不想使用 Component 使用 DOM 中已经存在的 HTML 来设置模板。
编辑
因此,根据响应,这是组件
组件滑块
import {Component, View, ElementRef} from 'angular2/core';
@Component({
selector: 'Slider',
template: '<ng-content></ng-content>'
})
export class Slider {
constructor(private element: ElementRef) {
console.log('Slider');
}
}
索引.html
<Slider>
<div>hello world</div>
</Slider>
我希望 Div 与内容 hello world 一起保留在 Slider 中。根据我一直在阅读的有关 Transclusion 的内容,AFAIK 这就是它应该如何工作的方式。但是控制台错误是:
Error: The component Slider has 1 <ng-content> elements, but only 0 slots were provided.