問題タブ [angularjs-ng-repeat]

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 投票する
2 に答える
19325 参照

angularjs - カスタムディレクティブと組み合わせたng-repeat

ng-repeat ディレクティブを独自のカスタム ディレクティブと組み合わせて使用​​すると問題が発生します。

HTML:

JS:

jSFiddleを参照してください

ここでの問題は、何も置き換えられないことです。私が達成しようとしているのは、「x-template-field」タグが DOM で完全に置き換えられた 2x 入力フィールドの出力です。私の疑いでは、ng-repeat は同時に DOM を変更しているため、これは機能しません。

このスタック オーバーフローの質問によると、受け入れられた回答は、これが以前のバージョンの AngularJS (?) で実際に機能していたことを示しているようです。

element.html('...') は機能しませんか?

element.html('...') は実際には生成された HTML をターゲット要素に挿入しますが、HTML をテンプレート タグの子要素にするのではなく、DOM で完全に置き換えます。

ng-repeat ディレクティブを持つ別のタグでテンプレート タグをラップしないのはなぜですか?

基本的に、上記と同じ理由で、生成された HTML を繰り返しタグの子要素として使用したくありません。おそらく私のアプリケーションでは適切に機能するでしょうが、マークアップを Angular に合わせて調整したように感じますが、その逆ではありません。

「テンプレート」プロパティを使用しないのはなぜですか?

「template」/「templateUrl」プロパティから取得した HTML を変更する方法が見つかりませんでした。挿入したい HTML は静的ではなく、外部データから動的に生成されます。

マークアップにこだわりすぎていませんか?

おそらく。:-)

どんな助けでも大歓迎です。

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

angularjs - テーブル内の行で ng-repeat と ng-class を使用する

私は AngularJS を使用していますが、得たい効果は、それが機能すると仮定すると、これが生成するものと似たものになります (機能しません)。

意見

コントローラ

このコードは、各行内のオブジェクトでのみ使用できるためperson、使用できないため機能しないことに気付きました。ng-classコードは、私が何をしようとしているのかを理解するためのものです。ng-repeat行自体のスコープ機能へのアクセスに依存する条件にも基づいているクラスを使用して作成されたテーブル行を作成できるようにしたいと考えています。person. 列に ng-class を追加するだけでよいことに気づきましたが、それは退屈です。誰にも良いアイデアはありますか?

0 投票する
4 に答える
36553 参照

angularjs - ng-repeatで前のアイテムを取得するにはどうすればよいですか?

現在のアイテムに前のアイテムとは異なるフィールドがある場合にのみHTMLを生成したいテンプレートがあります。ng-repeatで前のアイテムにアクセスするにはどうすればよいですか?

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

angularjs - AngularJs-ng-repeat内のDOM要素へのアクセス

次のテンプレートがあります:

そして私のコントローラーには:

ありがとう

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

angularjs - ng-repeat を使用した Angularjs は、同じタイプの複数の要素に対して同じ ID を生成しています

オブジェクトの配列であるプロパティ「プロパティ」を持つオブジェクト「メッセージ」があるhtmlページがあります。問題は、「ng-repeat」を使用して「Message.Properties」アイテムを反復処理して、angularjs で作成した特定のカスタム要素をレンダリングし、それによって ID を生成する場合です。同じ要素に対して同じ ID を取得します。タイプ。ここに私のコードのサンプルがあります:

要素「sdk:selectbox」がコンパイルされ、Message.Properties に同じタイプ (例: 9) の 2 つのプロパティがある場合、生成された id (作成された html 入力の) は両方で同じです(ランダムに生成していますが)、もちろん入力ごとに異なるIDが必要です。ng-repeat が各アイテムのテンプレートのクローンを作成することを読みましたが、そうですか?! それを解決する方法は?助けていただければ幸いです。

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

angularjs - JSONデータを使用してng-repeatキーが表示されない

私のサービスは JSON データを取得し、データをコントローラーに正常に返しますが、ng-repeat を使用してキー名を反復処理する際に問題があります。

カテゴリ名なのでキー名を一覧でページに表示したい。

現在、ng-repeat は正しい回数繰り返しますが、キー名は表示されません。

コントローラ:

サービス:

JSON データ:

意見:

0 投票する
5 に答える
159404 参照

angularjs - AngularJS: モデル要素がモデル配列からスプライスされたときに ng-repeat リストが更新されない

2 つのコントローラーがあり、それらの間で app.factory 関数を使用してデータを共有しています。

最初のコントローラーは、リンクがクリックされると、モデル配列 (pluginsDisplayed) にウィジェットを追加します。ウィジェットが配列にプッシュされ、この変更がビューに反映されます (配列の内容を表示するために ng-repeat を使用します)。

ウィジェットは、k2plugin、remove、resize の 3 つのディレクティブに基づいて構築されています。remove ディレクティブは k2plugin ディレクティブのテンプレートにスパンを追加します。上記のスパンをクリックすると、共有配列の右側の要素が で削除されArray.splice()ます。共有配列は正しく更新されますが、変更はビューに反映されません。ただし、別の要素を追加すると、削除後にビューが正しく更新され、以前に削除された要素は表示されません。

私は何を間違えていますか?なぜこれがうまくいかないのか説明していただけますか?AngularJS でやろうとしていることを行うためのより良い方法はありますか?

これは私のindex.htmlです:

これは私のmain.jsです:

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

javascript - ng-repeat のグループ化と DOM 外部ディレクティブの変更

私が抱えている問題を説明する方法が正確にわかりません。Angular ディレクティブがどのように機能するかについて頭を悩ませていると思います。ベスト プラクティスに関するアドバイスや意見を歓迎します。

コントローラーの $scope にオブジェクトの単純な配列があります。

このデータ モデルから DOM 構造を作成したいとします。

この plunker でこれに近いものを実現できます。

しかし、そこでは、私が望んでいない、わずかに異なる DOM 構造になってしまいます。

だから、私の質問は次のとおりです。

  1. この問題について正しく考えていますか?データ構造を変更して日付ごとにグループ化し、個々の日付ごとに ng-repeat する必要がありますか?
  2. 既存のデータ構造でこれを行う方法がある場合、birth-boy / ng-repeat ディレクティブの外側で DOM を変更する必要がありますか?
  3. ng-repeat ディレクティブをカスタムなものにラップする方法はありますか - コンパイル機能を調べ始めましたが、よくわかりません...

ありがとう!

0 投票する
5 に答える
59587 参照

angularjs - ngRepeat=>編集不可能な入力を使用して入力をプリミティブの配列にバインドする

これが私の問題のデモです。

入力が編集不可/読み取り専用である理由を誰かが私に説明できますか?それが設計によるものである場合、背後にある理論的根拠は何ですか?

2014年2月20日更新

これはv1.2.0以降のデモでは問題ではなくなったようです。ただし、ユーザーコントロールは新しいangularJSバージョンで編集可能になりましたが、変更されるのは親スコープではなく子スコープnumのプロパティであることに注意してください。つまり、ユーザーコントロールの値を変更しても、配列には影響しません。myNumbers

0 投票する
13 に答える
62728 参照

angularjs - AngularJSでフィルタリングされた結果を強調表示する

電話のチュートリアルのようにangularJSでng-repeatとfilterを使用していますが、ページで検索結果を強調表示したいと思います。基本的なjQueryを使用すると、入力のキーアップ時にページを解析するだけで済みますが、角度を付けて解析しようとしています。何か案は ?

私のコード: