2016-08-09 10 views
1

私は私が彼らにTypescriptでbindToControllerが推奨されないのはなぜですか?

export class MyDirective implements IDirective { 
    controller = MyController; 
    controllerAs = 'vm'; 
    bindToController = { 
     paramOne: '<', 
     paramTwo: '<' 
    }; 
} 

export class MyController { 
    paramOne: boolean; // theses params are now set and I can use them 
    paramTwo: boolean; 
    ... 
} 

にアクセスできるように、コントローラにパラメータをバインドするプロパティbindToControllerを使用しかし、今、私はインターフェイスIDirectiveのパラメータbindToControllerは推奨されていることを実現typescriptですを使用してangularjs指令を作成し、それでも動作します。

メッセージには説明する必要がありますが、それでも解決できません。

これは推奨されなくなった理由を説明することができます。

答えて

2

bindToControllerは推奨されていません。説明された動作は次のとおりです。 TSインタフェースのコメントは、this part of the manualです。

現在、バインドされたスコーププロパティは、コントローラコンストラクタでいくつかの条件で使用できます(バインドされた親スコーププロパティは、この時点で親コントローラで使用可能である必要があります)。

この動作は推奨されていません。コントローラのコンストラクタin futureではバインディングが使用できない可能性があります。バインディングに依存するすべてのコードをコンストラクタから$onInitフックに移動することをお勧めします。

デフォルトの動作が1.6で変更されました。$compileProvider.preAssignBindingsEnabledで変更できます。

関連する問題