【发布时间】:2016-05-21 16:39:10
【问题描述】:
我有一个 Angular 2 Directive 如下:
import { DOM } from 'angular2/src/platform/dom/dom_adapter';
import {Directive, ElementRef, Renderer} from 'angular2/core'
@Directive({
selector: '[headerBG]',
host: {
'(click)': 'onClick()'
}
})
export class HeaderBGDirective {
constructor(private el: ElementRef, private renderer: Renderer) {
}
onClick() {
console.log(1234);
}
}
如果我将此应用于body 元素:
<body headerBG>
它不起作用。
但是如果我把它放在另一个组件中,它就可以正常工作:
@Component({
selector: 'courses',
template: `<h2>
{{title}}
<input type='text' headerBG/>
</h2>
<ul>
<li *ngFor="#course of courses">
{{course}}
</li>
</ul>
`,
providers: [CourseService],
directives: [HeaderBGDirective]
})
这是正确的行为还是我错过了什么?如何将指令应用于 body 元素而不使其成为组件?
编辑:
import {Component} from 'angular2/core';
import {HeaderComponent} from 'modules/shared/directives/header.component';
import {HeaderBGDirective} from 'modules/shared/directives/headerBG.directive';
@Component({
selector: 'body',
templateUrl: './welcome/templates/welcome.html',
directives: [HeaderComponent, HeaderBGDirective]
})
export class AppComponent {
post = {
title: 'Favorite',
isFavorite: true
}
}
在welcome.html:
<sc-header></sc-header><div>some content</div>
【问题讨论】:
标签: typescript angular angular2-directives