問題タブ [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.

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

javascript - Angular ディレクティブ リンク機能

私はAngularが初めてです。私はディレクティブを学ぼうとしていました。ディレクティブのlink関数で要素をログに記録し、それが配列であることを確認します。なぜそれは配列ですか?

JS:

その場合、この配列の長さは 1 より大きくなる可能性があります!!

0 投票する
3 に答える
184 参照

angularjs - すぐにリバウンドした場合、イベント ハンドラーがアンバインドされない

ボタンをレンダリングする単純なディレクティブがあります。

ディレクティブのリンク機能は次のことを行います。

  1. 「mouseenter」および「mouseleave」イベントをバインドします。
  2. 「mouseenter」および「mouseleave」イベントのバインドを解除します。
  3. 「mouseenter」および「mouseleave」イベントを再度バインドします。

イベントのハンドラーは、単純なメッセージをコンソールに記録します。mouseenter または mouseleave でハンドラーが 1 回呼び出されることを期待します。ただし、ステップ 2 が発生しなかったかのように 2 回実行されます。

ディレクティブのコード:

次のプランカーは問題を示しています。

http://plnkr.co/ocXYYZ2jv09Ch7GDRaat

なぜこのように振る舞うのか、誰にも分かりますか?

更新: JQLite にフォールバックする代わりに jQuery を含めると機能します。残念ながら、それは私にとって選択肢ではありません。

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

javascript - Angular JS と jqLit​​e の一致ノードとセレクター

jQuery から jqLit​​e にいくつかの関数を追加しようとしているので、角度のあるアプリで jQuery ライブラリ全体をロードする必要はありません。この記事で Ben Nadel が使用した手法を使用しています。

http://www.bennadel.com/blog/2753-creating-jqlite-plugins-in-angularjs.htm

このような closestChild プラグインの実装が困難になっています。

https://github.com/lolmaus/jquery.closestchild/blob/master/jquery.closestchild.js

明らかに私は少し書き直したので、このようになります。

...しかし、このエラーにつながります。

そこで、エラーを検索したところ、何らかの理由で jqLit​​e がセレクターと一致できず、タグ名のみが一致することがわかりました (これは役に立ちますか?)。私が理解できないのは、その記事の Ben の .filter() 関数と一緒に実行されていることです。これは、セレクターを指定すると正常に動作するようです。これは、この行で呼び出している関数とまったく同じです。

それで、私の質問は、 $children をループして、それらのいずれかがプレーンな JavaScript を使用して渡されたセレクターまたはその他の回避策と一致するかどうかを確認する方法はありますか?

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

angularjs - 不足している画像の AngularJS エラー

そこで、画像の 404 をインターセプトし、最初の画像の読み込みに失敗したときに別の画像にフォールバックする簡単なディレクティブを作成しました。

非常にうまく機能しますが、404 ステータス コードを返しても本文に画像が返される URL で問題が発生しています (Google+ など)。

コードのサンプルをご覧になりたい場合は、https://jsfiddle.net/4cjb5srh/1/をご覧ください。

この例では、Google+ 画像ではエラーは発生しませんが、リンクされた画像では発生します。jqlite bind('error') の代わりに jquery .error() を使用しようとしましたが、問題は解決しませんでした。

編集: JimTheDev は、ngSrc パスが 404 に解決される場合と同じ質問かもしれないと指摘しました。デフォルトにフォールバックする方法はありますか? . 私とこの他の質問はどちらも404にフォールバックすることですが、これは404が返されたがエラーがトリガーされなかった場合に固有のものです(以下でkwan245によって説明されているように応答タイプが指定されている場合)。

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

javascript - AngularJS:ng-optionsを使用すると$element.find('option')が空の配列を返すのはなぜですか?

Angular 1.4 では、ngOptionsディレクティブを使用して、次のようなオブジェクトに基づく<select>タグをタグに設定しています。<option>

を使用するng-options="value as key for (key, value) in vm.colors"と問題なく動作しますが、キー (「.black」、「.red」など) に一致する各オプション タグにクラスを追加したいと考えています。私の考えでは、option要素を見つけて使用するだけでしたaddClass()が、それらの要素を取得するのに苦労しています。(注: 私は jQuery を使用していません。このためだけに追加することは避けたいと思います。)

ここにjsfiddleがあります。

$element.find('option')の結果をビュー モデルにバインドし、 を使用して監視できると期待していますが、コンソール$scope.$watch('vm.options', function() {...})にログインすると空の配列しか表示されません。vm.options

$scope.$watchここで間違って使用していますか?それは問題$elementですか?ngOptions要素はコントローラーから到達不能の範囲内にありますか? それとも私は愚かな間違いを犯していますか?

どんな助けでも大歓迎です...事前に感謝します!