1
我想在我的主模塊中註冊一些常用的指令,以便能夠跨所有子模塊使用它們,並且只有它們的一個副本。Angular2 - 在應用程序級別註冊指令
我的問題是,由於某些原因,該指令只在主模塊的聲明組件中被識別,但沒有任何子模塊可以使用它。
我做錯了什麼?有沒有我在這裏失蹤的Angular概念?這是主要模塊和一個簡單的指令,我嘗試在主模塊中導入的子模塊中使用。
我沒有收到任何錯誤或任何跡象表明我做錯了什麼。爲了保持簡短,我編輯了一些導入。讓我知道如果有什麼我應該補充。
指令:
import {Directive, OnChanges, Input, ElementRef, Renderer} from '@angular/core';
@Directive({
selector:'[readonlyCustom]'
})
export class ReadonlyDirective implements OnChanges{
@Input('readonlyCustom') val: boolean;
constructor(private el: ElementRef, private renderer: Renderer) {}
ngOnChanges(c){
if(c && c.val && c.val.currentValue === true){
this.el.nativeElement.readonly = c.val.currentValue;
}
else if(c && c.val && c.val.currentValue === false){
this.el.nativeElement.readonly = c.val.currentValue;
}
}
}
AppModule.ts
/* .... A bunch of imports... */
import {PolymerElement} from "@vaadin/angular2-polymer";
import {ReadonlyDirective} from "./shared/directives/readonlyDirective";
@NgModule({
declarations: [
/*some other declarations */
ReadonlyDirective
],
imports: [
/* ... some module imports ....*/
/* ... child modules ....*/
UsersModule,
RolesModule,
OrgModule,
GroupsModule,
],
entryComponents:[/*some components*/],
providers: [/*some services*/],
bootstrap: [AppComponent],
schemas:[CUSTOM_ELEMENTS_SCHEMA]
})
export class AppModule { }
編輯:我用我的應用程序內的聚合物成分,並使用來自Vaadin Angular2聚合物。 似乎我需要在每個模塊中提及PolymerElement(「polymer-element-name」),以便識別數據綁定。也可以在應用程序級別執行此操作嗎?