2016-11-23 1 views
0

私はアプリケーション全体で使用する必要のあるカスタムディレクティブを持っています。アプリケーション全体で使用するようにディレクティブを登録するにはどうすればよいですか?私が出会った他の質問はすべて古くなっています。私は、製品中にディレクティブを登録するとmain.tsこのangular2のfinalにdirectiveを登録します

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 
import { enableProdMode } from '@angular/core'; 
import { AppModule } from './app.module'; 

//enableProdMode(); //Uncomment for production 
platformBrowserDynamic().bootstrapModule(AppModule) 
    .then((success: any) => console.log('App bootstrapped')) 
    .catch((err: any) => console.error(err)); 

マイアプリのように見える私の2.1.0

は怠け者oading

appmodule 
--contact module 
--project module 
--restmodules 
... 

を使用するために6つのモジュールを持って、角2最終版のためのソリューションを必要としますモジュール、それはうまくいきました。だから、私は今、この特定のディレクティブが機能していません。この

import { mdinput} from './shared/mdinput.directive'; 


@NgModule({ 
    imports: [ 
       AppRoutingModule 

    ], 
    declarations: [ 
     AppComponent,mdinput 

    ], 
    providers: [DataService], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { 
} 

ようappmodule.tsでこのディレクティブを登録しているため、モジュールの私の残りの部分でこのディレクティブを使用していました。また、エラーを出すこともありません。

+0

NgModuleの宣言に追加するだけです。 https://angular.io/docs/ts/latest/guide/attribute-directives.html –

+0

@JBNizetしかし動作していない別のモジュール –

+0

達成しようとしていることを推測させないでください。あなたの疑問を編集し、あなたの指令、モジュールなどに関するすべての関連情報を投稿します。おそらくそれをエクスポートに追加する必要がありますが、何も見ずに推測するのは難しいでしょう。 –

答えて

1

フィーチャモジュールにフィーチャモジュールを追加し、フィーチャモジュールを使用するモジュールのimports: [...]に追加するだけです。

でも*ngIf*ngFor、...今importsCommonModuleまたはBrowserModuleを追加することによって、この方法を追加する必要があります。詳細については

は別のディレクトリに指令を作成し、https://angular.io/docs/ts/latest/guide/ngmodule.html

2

ファーストを参照してください。たとえば、customDirectivesディレクトリのmyHighlight.directive.tsというディレクティブを作成したとします。今

import { HighlightDirective } from 'yourpath/customDirectives/myHighlight.directive'; 

declarations: [..., HighlightDirective] 

app.module.tsにこれらを追加します。

今どのコンポーネントビューでこれを使用します。

これは動作しますどのように
<td myHighlight>{{user.name | capitalize}}</td> 

関連する問題