[解決済み】AngularJSでディレクティブを動的に追加するにはどうすればよいですか?
2022-04-09 04:29:11
質問
私がやっていることは、非常に煮詰まったものですが、問題は伝わっています。
私は、シンプルな
directive
. 要素をクリックするたびに、別の要素が追加されます。しかし、それを正しくレンダリングするためには、最初にコンパイルする必要があります。
研究の結果、私は
$compile
. しかし、どの例も複雑な構造を使っていて、ここでどう適用したらいいのかよくわからないのです。
フィドルはこちら http://jsfiddle.net/paulocoelho/fBjbP/1/
そして、JSはこちらです。
var module = angular.module('testApp', [])
.directive('test', function () {
return {
restrict: 'E',
template: '<p>{{text}}</p>',
scope: {
text: '@text'
},
link:function(scope,element){
$( element ).click(function(){
// TODO: This does not do what it's supposed to :(
$(this).parent().append("<test text='n'></test>");
});
}
};
});
解答者:ジョシュ・デイヴィッド・ミラー http://jsfiddle.net/paulocoelho/fBjbP/2/
どのように解決するのか?
無意味なjQueryがたくさん入っていますが、$compileサービスは、実は スーパーシンプル この場合
.directive( 'test', function ( $compile ) {
return {
restrict: 'E',
scope: { text: '@' },
template: '<p ng-click="add()">{{text}}</p>',
controller: function ( $scope, $element ) {
$scope.add = function () {
var el = $compile( "<test text='n'></test>" )( $scope );
$element.parent().append( el );
};
}
};
});
ベストプラクティスに従うために、ディレクティブもリファクタリングしたことにお気づきでしょう。 これらのことについて質問があれば、私に知らせてください。
関連
-
[解決済み] Jasmineの "callThrough "と "callFake() "の実用的な例が欲しい
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] AngularJS コントローラにおける 'this' と $scope の比較
-
[解決済み] 入力フィールドにフォーカスを当てるには?
-
[解決済み] ng-classを使った複数クラスの追加
-
[解決済み】AngularJSのディレクティブスコープにおける「@」と「=」の違いは何ですか?
-
[解決済み] AngularJSで独自のスコープ*を持つカスタムディレクティブ内から親スコープにアクセスするにはどうすればよいですか?
-
[解決済み】AngularJSディレクティブで定義されたメソッドを呼び出すには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】npm UNMET PEER DEPENDENCYの警告を修正するにはどうすればいいですか?
-
[解決済み】typeerrorは、未定義のプロパティ'data'を読み取ることができません。
-
[解決済み】TypeError: window.initMap is not a function
-
[解決済み] AngularJs ReferenceError: $http is not defined
-
[解決済み] Angular ng-repeat エラー "リピータ内の重複は許可されません。"
-
[解決済み] controllerAs "プロパティを使用する理由は何ですか?
-
angularjs統合ueditor入門
-
[解決済み] どのように$state.goにパラメータを追加しますか?
-
[解決済み] "AngularJSで考える "って、jQueryのバックグラウンドがあれば?[終了しました]
-
[解決済み] ng-repeat内のng-click関数にパラメータを追加しても、うまくいかないようです。