したがって、次のようにコンポーネントと属性ディレクティブがあります。 <my-component my-directive>
。コンポーネントのディレクティブを破棄する
コンポーネントが破棄されたときは、$scope.$destroy();
($ scopeはコンポーネントコントローラに挿入されています)を呼び出します。
内部の指示link
私はこのようなリスナーを持っています: $scope.$on('$destroy', function() {...
と問題はそれが機能していないということです。それらは異なるスコープであるようです。
今私は回避策があります
は、コンポーネントコントローラに
require : '^myComponent',
を$ctrl.scope = $scope;
を追加し、myComponent.scope
を使用する - それは動作します。
質問は次のとおりです。どのようにコンポーネントの破壊内部ディレクティブを聞くことができますか?
加え:これそれはあなたがスコープの$ctrl
プロパティを使用して、ディレクティブからコントローラにアクセスすることができます何か
これは私の回避策とほぼ同じです。しかし、より良い、よりネイティブな方法があるかどうか疑問に思う – k102
うん、しかし、コンポーネント破壊のためのドキュメントは '$ onDestroy()lifecycle hook'を使ってコントローラ内の$ scope($ destroy)インスタンスを置き換えると言います。 –
Isntそれはただの砂糖ですか? – k102