私は次の問題を抱えていました: 私の顧客は私のAngularディレクティブが完全に焦点を合わせた外観を変更することを望んでいます. つまり、ユーザーがその要素をクリックしたときに、テンプレートを完全に置き換える必要があります。インターネットで答えを見つけることができなかったので、質問することにしました。
ディレクティブのテンプレート セクションで「フォーカスされていない」テンプレートを渡し、次のようにリンクでフォーカス イベントにバインドしようとしました。
post: function (scope, element, attrs) {
element.bind('focus',function(event){
element.html('<span..../span>');
$compile(element)(scope);
});
}
ただし、エラーが発生します(入力は「フォーカスされていない」テンプレートです)
Uncaught Error: [$compile:multidir] Multiple directives
[ngModel, ngModel] asking for 'ngModel' controller on: <input....
このソリューションは、私が使用しなければならない Angular 1.2 と互換性がある必要があります。