問題タブ [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.
angularjs - ng-if を使用しない Angularjs ディレクティブの条件付きレンダリング
認証サービスから指示された場合にのみレンダリングするディレクティブがあります。
ディレクティブ自体は非常に空です:
ディレクティブはログイン時に常にレンダリングされる必要があるため、ngIf ロジックは ng-if ではなく、ディレクティブ宣言内にある必要があります (ngIf のないディレクティブは完全に壊れてしまいます)。
と同じ動作が必要であることを認識して、ディレクティブ コードを変更するには (ディレクティブ宣言内のセキュリティ サービスにテストを挿入する)、どうすればよいngIf
ですか? :
nfIf
に解決される場合にのみ DOM に存在するディレクティブtrue
nfIf
解決時に $destroy の自動呼び出しfalse
) ?
compile
関数と監視するウォッチャーを使用しようとしましたsecurity.isAuthenticated()
が成功しませんでした
angularjs - 属性をバインドしないでコンパイルする (AngularJS)
コードをリファクタリングして、HTML をより読みやすくするためにディレクティブをさらに活用しようとしています。コンパイル メソッドでいくつかの HTML を移動しようとしています。
HTML:
data-ng-focus および data-ng-blur のメソッドは、親コントローラーで定義されます。ディレクティブを使用してそれらを html にバインドする方法を見つけようとしています。上記のコードは、それを行うには十分ではないようです。何をすればいいのかわからない... ディレクティブを使用して html を完全に構築する方法はありますか?
編集:これは私がやろうとしていることの図です:
javascript - Angular JS ディレクティブの定義 - ngModelController とカスタム コントローラーが必要
リンク関数を使用して、2 つの異なるディレクティブ コントローラーをバインドするだけで、ほとんどの機能をコントローラーのコードに含めるように Angular ディレクティブを作成しようとしています。
コントローラーを「必要とする」ことと、「コントローラー」を定義することの両方に関して、問題が発生しています。リンク関数で、指定したコントローラーへの参照を取得するにはどうすればよいですか?
サンプルコード (もちろん、周囲のすべての module.directive を除く)
「コントローラー」には ngModelController が含まれていますが、CustomDirectiveCtrl にアクセスする方法がありません。
リンク関数から ngModelController と CustomDirectiveCtrl の両方にアクセスするにはどうすればよいですか?
javascript - AngularJS:ディレクティブを外側から評価する方法は?
実行例:
http://jsbin.com/secuz/5/edit?html,js,出力
詳細
上記の失敗は、Angular ディレクティブが処理される順序に関する私の仮定と矛盾しています。外側のディレクティブが最初に実行され、次に実行が内側に伝播することが期待されます。
ng-if
この評価の乱れはよりも優先度が高いためと考えてng-show
よろしいでしょうか? もしそうなら、2 つのディレクティブが同じ要素にある場合にのみ、優先順位を考慮すべきではないでしょうか?
主な質問
実行が常に外部から実行されるようにするにはどうすればよいですか? 使用するすべてのディレクティブに同じ優先度を与える必要がありますか?
編集:
2 つの追加シナリオを試しました:
- 両方が
ng-if
s の場合、予想どおり、伝播は外側から内側に発生します。
[[ '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 ]]
javascript - angularjs バージョン 1.2 から 1.3 へのアップグレード時の奇妙なエラー
angularjs 1.3 にアップグレードしようとしていますが、このエラーが発生してスタックしました:
「ngSanitize」をロードしましたが、ファイルが見つからないというエラーはありません...何か不足していますか?
また、これは 1.2 ブランチで完全に機能します。
前もって感謝します!
angularjs - $compile を使用して新しいスコープで新しく作成されたディレクティブは ng-animate しません
switcher
新しいスコープを作成し、それを使用して別のディレクティブに$compile
置き換えるメソッドを持つディレクティブがあります。element
lister
例として、lister
ディレクティブには新しいスコープで反復する ng-repeat が含まれています。
新しく作成されたlister
ディレクティブをng-enter
andng-leave
クラスで作成したらすぐにアニメーション化しようとしましたが、何の効果もありません。
で動的に作成されたディレクティブをアニメーション化することは可能$scompile
ですか? もしそうなら、私は何が欠けていますか?
コードはこの plunkrにあります。
angularjs - ディレクティブを持つ要素は、単体テストで正しく $compile しません
私のディレクティブはブラウザで正常に動作します。それは私がうまくいかないように見える単なる単体テストです。ディレクティブは単純なスライダーを作成し、スコープにいくつかの値を設定しますmin
。
単体テストでは、 $compile(element) は、他に何もせずに jqlite でラップしているようです。まあ、明らかにスコープも与えますが、スコープには何もありません。テンプレートも適用されていません。
私の単体テスト:
これのコンソール出力は次のとおりです。
(わずかにクリーンアップされた) コード全体を含むJSFiddleがありますが、不思議なことに $compile を通過することさえできません。これは、私がローカルで抱えている問題とは異なります。JSFiddle が役に立つかどうかはわかりません。1 つではなく 2 つの不可解な問題が発生したためです。
angularjs - Bing Maps 上の Angular ディレクティブ コンテンツを含むカスタム プッシュピン
Bing Maps AJAX Control を使用してマップを表示しています。そして、マップに配置したい画鋲用の Angular ディレクティブを作成しました。
Angular コントローラー内でマップをセットアップし、次のようにピンを追加します。
残念ながら、明らかに同様に、"htmlContent" の一部が Bing サービスによって DOM に動的に挿入されるため、カスタム ピンがマップに表示されません。私は Angular の $compile サービスをいろいろ試しましたが、それを機能させる方法がわかりませんでした...