[解決済み] angularJSで複数の値をフィルタリングする方法(OR演算)
2022-06-12 12:55:17
質問
を使いたいのですが
filter
を使用して、複数の値をフィルタリングし、いずれかの値を持つ場合、それを表示する必要があります。
例えばこんな構造です。
オブジェクト
movie
というプロパティを持つ
genres
というプロパティがあり、それをフィルタリングして
Action
と
Comedy
.
ができることは知っています。
filter:({genres: 'Action'} || {genres: 'Comedy'})
ができるのは知っていますが、動的にフィルタリングしたい場合はどうすればよいのでしょう。例えば
filter: variableX
どのようにすれば
variableX
の中に
$scope
という配列がある場合、フィルタリングする必要があるのでしょうか?
文字列として構築して、それを
eval()
ということもできますが、eval()は使いたくありません...。
どのように解決するのですか?
カスタムフィルタを作成すればいいのです。 それほど難しいことではありません。
angular.module('myFilters', []).
filter('bygenre', function() {
return function(movies,genres) {
var out = [];
// Filter logic here, adding matches to the out var.
return out;
}
});
のテンプレートを使用します。
<h1>Movies</h1>
<div ng-init="movies = [
{title:'Man on the Moon', genre:'action'},
{title:'Meet the Robinsons', genre:'family'},
{title:'Sphere', genre:'action'}
];" />
<input type="checkbox" ng-model="genrefilters.action" />Action
<br />
<input type="checkbox" ng-model="genrefilters.family" />Family
<br />{{genrefilters.action}}::{{genrefilters.family}}
<ul>
<li ng-repeat="movie in movies | bygenre:genrefilters">{{movie.title}}: {{movie.genre}}</li>
</ul>
編集 リンクはこちらです。 Angularフィルタを作成する
アップデイト : ここでは フィドル で、私の提案の正確なデモを見ることができます。
関連
-
vueはopenlayersを使用してスカイマップとガオードマップをロードする
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】"フォームが接続されていないため、フォームの送信がキャンセルされました "というエラーの取得について
-
[解決済み】TypeErrorの解決方法。未定義またはヌルをオブジェクトに変換できない
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
fetch ネットワークリクエストラッパーの説明例
-
vueの補間表現とv-textディレクティブの違いについて
-
vueにおけるfilterの適用シーンについて解説します。
-
[解決済み】SyntaxError: JSONの位置1に予期しないトークンoがある。
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】TypeError: Router.use() はミドルウェアの関数を要求しているが、Object を取得した。
-
[解決済み】Node.js Error: Cannot find module express
-
[解決済み] Web API エラー - このリクエストはブロックされました; コンテンツは HTTPS で提供されなければなりません
-
[解決済み】ERROR エラーです。スイッチのname属性が指定されていないフォームコントロールの値アクセッサがない
-
[解決済み】 env: node: macにそのようなファイルやディレクトリはありません