0
インラインエディタ用のAngularjsディレクトリを作成しました。 HTMLテンプレートは、HTMLルート要素で関数とコンパイルを使用して作成されます。私の問題は、トグルを達成するために要素をクリックしたときにステータス変数を変更したいのですが、動作していないようです。AngularJSクリックがディレクティブ動的テンプレート関数内で機能しない
参考用にコードスニペットが含まれています。これは、ディレクティブリンク関数内に記述されています。
var appendTotemplate = function() {
var uploadMediaName = "hello";
var MediaNameEditable = false;
template = "<a ng-if='MediaNameEditable !=true' ng-click='MediaNameEditable=true'" + uploadMediaName + "</a>" +
"<input ng-if='MediaNameEditable==true' type='text' value='" + uploadMediaName + "' id='mediatxt' ng-click='MediaNameEditable=false;' >";
var linkFn = $compile(template);
var content = linkFn(scope);
element.append(content);
}();
コードを確認してください。私は本当にこのように実装したい。前もって感謝します!
を切り替えるための関数を作ることができますしてみてください! – abhilash
ちょっと、そのテンプレートのスコープ変数にアクセスする方法はありますか?私はそのローカル変数(uploadMediaName、MediaNameEditable)を変更して、ディレクティブスコープから取り出したいと思います。私は何か試しましたが、テンプレートの中で働いていないようです。しかし、私は警告ダイアログを使ってチェックした値を得ています。 – abhilash
スコープにバインドして、テンプレートscope.uploadMediaName = "hello"で使用します。これは、コンパイル時にスコープ(linkFn(scope))で実行するため、スコープに存在する場合にテンプレートで使用される変数をコンパイルしようとします。 – Bettimms