問題タブ [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.
javascript - angularjs ディレクティブをネイティブ html 要素 (入力テキスト、div、span など) に追加しますか?
私はこのようなものを持っています -
ページ上の既存の html 要素にカスタム ディレクティブを属性として追加するにはどうすればよいですかcategoryLookup
。
ページの読み込み時にこれを動的に行う必要があります。つまり、入力テキストをディレクティブ ロジックごとに動作させる必要があります。
前もって感謝します。
angularjs - $compile がディレクティブで ng-href をコンパイルしない
属性にテンプレートを渡し、それをコンパイルして後でレンダリングすると、式がコンパイルされていない を除いて、 $compile は正常に機能しますng-href="expression"
。
これはコンパイル機能で行われ、リンク機能では遅すぎますか?
ところで、テンプレート スコープをその親にリンクします。コントローラーのスコープである最も近いスコープを見つけるにはどうすればよいですか。
$parent
すべてのケースでコントローラーのスコープであるとは限りません。
angularjs - Angular 1.4 でスコープ関数をディレクティブに拡張する
angular-ui.github.io/bootstrap/ datepicker を拡張しようとしていますが、うまくいかないようです。
「TypeError: scope.monthChanged は関数ではありません」というエラーが表示され続けます。Angular のコードを適用しました- ui-bootstrap - datepicker - 月がいつ変更されたかを検出する方法はありますか?
HTML は次のとおりです。
このプランカーを試してください: http://plnkr.co/edit/sXuAkUz0l9XdtdUb457V?p=preview コードを調べると、インライン カレンダーを次の月に変更すると、次のエラー コードが表示されます: TypeError: scope.monthChanged is not a関数 –</p>
javascript - 属性名を正規化/非正規化する前に元の属性名を取得する方法は?
<select>
要素で使用できるディレクティブを作成して、<select>
動的に更新され、アプリ内のすべてのコンポーネント間で共有される、グローバルに知られているリストを設定するように指示したいと考えています。
私はそれを次のように使用することを想定しています:
これが私がこれまでに行っている方法です:
つまり、ng-options
この目的のために設定したスコープに基づいて、必要な機能を実行する属性を割り当ててから、それを割り当てます$compile
。
これはうまくいきます。しかし、私がATTENTIONでコメントした行に注意してください: これは、ユーザーが<select select-the-list>
を使用したことを前提としていますselectTheList
。ただし、ディレクティブ docsによると:
Angularは要素のタグと属性名を正規化し、どの要素がどのディレクティブに一致するかを判断します。通常、大文字と小文字を区別するキャメルケースの 正規化された名前 (例:
ngModel
) でディレクティブを参照します。ただし、HTML では大文字と小文字が区別されないため、DOM 内のディレクティブを小文字の形式で参照します。通常は、DOM 要素のダッシュ区切りのng-model
属性を使用します (例: )。正規化のプロセスは次のとおりです。 [... 中略 ...]
たとえば、次の形式はすべて同等であり、
ngBind
ディレクティブに一致します。
つまり、ユーザーが実行<select select:the:list>
すると、ディレクティブが適用され、機能element.removeAttr('select-the-list')
せず、無限ループが発生します。
これはXY 問題である可能性があるため、このコンテキストをすべて提供しました。しかし、これが良い方法である場合、ディレクティブが呼び出される原因となった要素の実際の属性を見つける最良の方法は何ですか?再コンパイルする前に削除できますか?
angularjs - 関数を属性値として含む $compile
$compile で 1 つの問題に直面しています。私が書いたコードは非常に大きいので、この問題を再現するために 1 つの小さな例を作成します。私のページにボタンがあるとします。ユーザーがそのボタンをクリックすると、以下に示すように ng-click メソッドを持つもう 1 つのボタンが作成されます。
HTML:<button type="button" ng-click="createExample()">test</button>
ユーザーがボタンをクリックすると、createExample() メソッドが呼び出されます。このメソッドは、ng-click を持つ別のボタンを作成します。この ng-clicks には、アラートを出すメソッドが含まれています。
以下のエラーが発生します。
$compile は私が持っている唯一のオプションです。これを機能させる方法は??
JSFiddleここ