問題タブ [angularjs-compile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1280 参照

angularjs - ng-if を使用しない Angularjs ディレクティブの条件付きレンダリング

認証サービスから指示された場合にのみレンダリングするディレクティブがあります。

ディレクティブ自体は非常に空です:

ディレクティブはログイン時に常にレンダリングされる必要があるため、ngIf ロジックは ng-if ではなく、ディレクティブ宣言内にある必要があります (ngIf のないディレクティブは完全に壊れてしまいます)。

と同じ動作が必要であることを認識して、ディレクティブ コードを変更するには (ディレクティブ宣言内のセキュリティ サービスにテストを挿入する)、どうすればよいngIfですか? :

  • nfIfに解決される場合にのみ DOM に存在するディレクティブtrue
  • nfIf解決時に $destroy の自動呼び出しfalse) ?

compile関数と監視するウォッチャーを使用しようとしましたsecurity.isAuthenticated()が成功しませんでした

0 投票する
0 に答える
180 参照

angularjs - 属性をバインドしないでコンパイルする (AngularJS)

コードをリファクタリングして、HTML をより読みやすくするためにディレクティブをさらに活用しようとしています。コンパイル メソッドでいくつかの HTML を移動しようとしています。

HTML:

data-ng-focus および data-ng-blur のメソッドは、親コントローラーで定義されます。ディレクティブを使用してそれらを html にバインドする方法を見つけようとしています。上記のコードは、それを行うには十分ではないようです。何をすればいいのかわからない... ディレクティブを使用して html を完全に構築する方法はありますか?

編集:これは私がやろうとしていることの図です:

http://plnkr.co/edit/YNYvQrqqvKqeBTrU2qfL?p=preview

0 投票する
1 に答える
75 参照

javascript - Angular JS ディレクティブの定義 - ngModelController とカスタム コントローラーが必要

リンク関数を使用して、2 つの異なるディレクティブ コントローラーをバインドするだけで、ほとんどの機能をコントローラーのコードに含めるように Angular ディレクティブを作成しようとしています。

コントローラーを「必要とする」ことと、「コントローラー」を定義することの両方に関して、問題が発生しています。リンク関数で、指定したコントローラーへの参照を取得するにはどうすればよいですか?

サンプルコード (もちろん、周囲のすべての module.directive を除く)

「コントローラー」には ngModelController が含まれていますが、CustomDirectiveCtrl にアクセスする方法がありません。

リンク関数から ngModelController と CustomDirectiveCtrl の両方にアクセスするにはどうすればよいですか?

0 投票する
1 に答える
117 参照

javascript - AngularJS:ディレクティブを外側から評価する方法は?

実行例:

http://jsbin.com/secuz/5/edit?html,js,出力

詳細

上記の失敗は、Angular ディレクティブが処理される順序に関する私の仮定と矛盾しています。外側のディレクティブが最初に実行され、次に実行が内側に伝播することが期待されます。

ng-ifこの評価の乱れはよりも優先度が高いためと考えてng-showよろしいでしょうか? もしそうなら、2 つのディレクティブが同じ要素にある場合にのみ、優先順位を考慮すべきではないでしょうか?

主な質問

実行が常に外部から実行されるようにするにはどうすればよいですか? 使用するすべてのディレクティブに同じ優先度を与える必要がありますか?

編集:

2 つの追加シナリオを試しました:

  • 両方がng-ifs の場合、予想どおり、伝播は外側から内側に発生します。

[[ '1 if', true ], [ '2 if', true ], [ '1 if', true ], [ '2 if', true ]]

  • ただし、2 つng-showの s は直感に反する動作を示します。

[[ '2 show', true ], [ '1 show', true ], [ '2 show', true ], [ '1 show', true ]]

0 投票する
0 に答える
198 参照

javascript - angularjs バージョン 1.2 から 1.3 へのアップグレード時の奇妙なエラー

angularjs 1.3 にアップグレードしようとしていますが、このエラーが発生してスタックしました:

「ngSanitize」をロードしましたが、ファイルが見つからないというエラーはありません...何か不足していますか?

また、これは 1.2 ブランチで完全に機能します。

前もって感謝します!

0 投票する
1 に答える
235 参照

angularjs - $compile を使用して新しいスコープで新しく作成されたディレクティブは ng-animate しません

switcher新しいスコープを作成し、それを使用して別のディレクティブに$compile置き換えるメソッドを持つディレクティブがあります。elementlister

例として、listerディレクティブには新しいスコープで反復する ng-repeat が含まれています。

新しく作成されたlisterディレクティブをng-enterandng-leaveクラスで作成したらすぐにアニメーション化しようとしましたが、何の効果もありません。

で動的に作成されたディレクティブをアニメーション化することは可能$scompileですか? もしそうなら、私は何が欠けていますか?

コードはこの plunkrにあります。

0 投票する
1 に答える
789 参照

angularjs - ディレクティブを持つ要素は、単体テストで正しく $compile しません

私のディレクティブはブラウザで正常に動作します。それは私がうまくいかないように見える単なる単体テストです。ディレクティブは単純なスライダーを作成し、スコープにいくつかの値を設定しますmin

単体テストでは、 $compile(element) は、他に何もせずに jqlite でラップしているようです。まあ、明らかにスコープも与えますが、スコープには何もありません。テンプレートも適用されていません。

私の単体テスト:

これのコンソール出力は次のとおりです。

(わずかにクリーンアップされた) コード全体を含むJSFiddleがありますが、不思議なことに $compile を通過することさえできません。これは、私がローカルで抱えている問題とは異なります。JSFiddle が役に立つかどうかはわかりません。1 つではなく 2 つの不可解な問題が発生したためです。

0 投票する
2 に答える
2687 参照

angularjs - Bing Maps 上の Angular ディレクティブ コンテンツを含むカスタム プッシュピン

Bing Maps AJAX Control を使用してマップを表示しています。そして、マップに配置したい画鋲用の Angular ディレクティブを作成しました。

Angular コントローラー内でマップをセットアップし、次のようにピンを追加します。

残念ながら、明らかに同様に、"htmlContent" の一部が Bing サービスによって DOM に動的に挿入されるため、カスタム ピンがマップに表示されません。私は Angular の $compile サービスをいろいろ試しましたが、それを機能させる方法がわかりませんでした...