問題タブ [jqlite]
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 - Mocha テスト スイートの AngularJS ディレクティブでクリック イベントをトリガーする
ディレクティブ付きの通常の角度アプリがあります。このディレクティブには、呼び出しを持つ要素が含まれていng-click="clickFunction()"
ます。その要素をクリックすると、すべてうまくいきます。このクリックのテストを作成し、要素がクリックされたときにこの関数が実際に実行されたことを確認する必要があります。これが問題です。
これが私の問題を説明するためのjsfiddleです: http://jsfiddle.net/miphe/v0ged3vb/
コントローラーには、clickFunction()
クリック時に呼び出される関数が含まれています。単体テストは、ディレクティブの要素のクリックを模倣して、その関数の呼び出しをトリガーする必要があります。
はclickFunction
呼び出されたかどうかを確認できるように、sinonjs でモックされています。そのテストは失敗しました。つまり、クリックがありませんでした。
ここで何が間違っていますか?
Testing JavaScript Click Event with Sinonのような同様の質問に対する回答を見てきましたが、完全な jQuery を使用したくありません。正しい関数をモック (スパイ) していると思います。
上記のフィドルの js は次のとおりです (ここで確認したい場合)。
angular.js
、angular-mocks.js
同様に読み込まれます。
javascript - .addClass が jqLite / Angular.js で機能しない
最近、.addClass 関数が jqLite で機能しない理由を理解するのに苦労しています
Element は html 要素の配列を返し、それを何度もテストして確認しました。hide() 、 show() 、 .css の追加または取得、または .attr の設定さえできますが、 addClass は抵抗します。
edit: 要素は svg block 内のパスです。これが addClass 関数を無関係にしているように見える理由であり、まだ修正しようとしています。
要素は jqLite オブジェクトです
ありがとうございました。
javascript - angular-jsアプリでGoogleタグマネージャーの「クリックリスナー」を使用すると、「dataLayerを文字列化できません」
angularjs アプリの Google タグ マネージャーを介して追跡を実装しようとしています。tag-manager で定義されたクリック リスナーを使用すると、次のスクリプトがクリックごとにアプリに挿入されます (またはそのように思われます)。
クリックが追跡されると、"Cannot stringify dataLayer"
エラーが発生します。この理由は、クリックすると、オブジェクトに関連付けられた子参照と親参照のために、それ自体への循環参照を持つ要素も送信されるためです (おそらく jquery によって??)。
この再帰に遭遇することなく、Googleタグマネージャーでクリックリスナーを実装する方法はありますか?
javascript - jqLite .html() ハンドルを AngularJS ウォッチ リスナーとして直接渡す
jqLite 関数 element.html をウォッチャーのリスナーとして直接渡そうとしています。
ただし、これは何らかの理由で機能しないため、回避策としてリスナーを関数でラップしました。
この 2 番目の例は機能します。
最初の例が壊れている理由がわかりません。何か案は?
編集: 言及するのを忘れていましたが、ブラウザはエラーを表示しません。空の要素が表示されるだけです。
angularjs - Angular ディレクティブで要素に何かを適用するが、その子には適用しない方法
私のAngularプロジェクトでは、一連の「ブロック」(それぞれがそのdiv
中に他の要素を含むもので構成される)を作成する再帰的なテンプレートがあり、いくつかのレベルの深さでネストされています-これに似ています:
これらの各overall
div には、ドラッグされたアイテムを受け入れるディレクティブがあります (標準のドラッグ アンド ドロップ)。
問題は、削除が<h2>
element と content で発生することも許可されていることdiv
です。これは私が望むものではありません。overall
ドロップがdivの上だけになるようにしたい。
それを行う方法についてのアイデアはありますか?
javascript - Finding a specific element tag in angularJS
I'm working with angularJS and would like to remove/modify the class of a specific child element (who's class/id is unknown because it is being added to the parent element dynamically).
I understand that using angular you can say something like:
However, I want to do something similar to:
The class 'someknownParentClass' is a class assigned to an 'a' tag, and inside this tag, I have an 'i' tag with a glyphicon icon class that I would like to change from inside a specific function. It seems like this method isn't working. I know angular's jqLite has a children() attribute, but i'm a little unsure of how to use this or if it would be useful in this case, or maybe using jQuery with angular would be my best option (from what I understand, that's different than jqLite). Any suggestions?
angularjs - AngularJS ディレクティブ jqLite は .contents() を .children() に変換します
この実行可能な例を考えてみましょう:
ご覧のとおり、transcludeFunction の clone パラメーターはオブジェクトを .contents() として返します。これには、テキスト ノードが含まれます。2 つの質問があります。
- このコンテンツ配列を子配列に変換して、テキスト ノードを省略する方法はありますか?
- ご覧のとおり、配列内の要素にアクセスするときにテキストの内容を取得しますが、それらを要素として取得し、属性を取得できるようにするにはどうすればよいでしょうか?
angularjs - jqliteを使用してAngularで要素のattrデータを取得するにはどうすればよいですか?
jqliteを使用してAngularで要素のattrデータを取得するにはどうすればよいですか?
html、
角度のある、
このエラーが発生します。
何か案は?