[解決済み] angular ng-repeat 式にマッチした場合、アイテムをスキップする。
質問
私は、基本的にng-repeatのアイテムが式にマッチする場合、それをスキップするようにangularに指示する方法を探しています、基本的に
continue
;
コントローラで
$scope.players = [{
name_key:'FirstPerson', first_name:'First', last_name:'Person'
}, {
name_key:'SecondPerson', first_name:'Second', last_name:'Person'
}]
次に、このテンプレートで
name_key='FirstPerson'
. 私はそれがフィルタでなければならないと思ったので、Plunkrをセットアップしてそれを使って遊んでみたが、何の運もなかった。
Plunkrの試み
どのように解決するのですか?
として
マキシム・シュスティン
が提案するように、あなたが望むことを実現する最良の方法は、カスタムフィルタを使うことでしょう。
しかし、他にも方法はあります。
ng-if
ディレクティブを使うことです。
ng-repeat
ディレクティブを置いたのと同じ要素で (さらに、ここでは
プランカー
):
<ul>
<li ng-repeat="player in players" ng-if="player.name_key!='FirstPerson'"></li>
</ul>
これはエステの観点からは小さな欠点かもしれませんが、フィルタリングが
players
配列とそれほど緊密な関係になく、アプリのスコープ内の他のデータに簡単にアクセスできるルールに基づいてフィルタリングできるという大きな利点があります。
<li
ng-repeat="player in players"
ng-if="app.loggedIn && player.name != user.name"
></li>
更新
記載されているように、これは
解決策の一つ
であり、あなたのニーズに合うかもしれません。
コメントで指摘されているように
ng-if
はディレクティブであり、それは実際にはあなたが期待するよりも多くのことをバックグラウンドで行うかもしれないことを意味します。
例えば
ng-if
はその親から新しいスコープを作成します。
:
ngIf内で作成されたスコープは、プロトタイプ継承を利用して親スコープを継承します。
これは通常、通常の動作には影響しませんが、予期せぬケースを防ぐために、実装する前にこのことを頭に入れておく必要があります。
関連
-
[解決済み] Angular ng-repeat エラー "リピータ内の重複は許可されません。"
-
[解決済み] 子 ng-repeat から親 ng-repeat のインデックスにアクセスする。
-
[解決済み] AngularJSのng-repeatは、空のリストのケースを処理します。
-
[解決済み] angular-routeとangular-ui-routerの違いは何ですか?
-
[解決済み] AngularJSのng-repeatでキーと値を反復処理する方法は?
-
[解決済み] ng-repeat :単一フィールドによるフィルタリング
-
[解決済み] 配列上で繰り返すのではなく、定義された回数をng-repeatする方法?
-
[解決済み] Angularで複数のフィールドをorderByする
-
[解決済み] ネストしたng-repeatの中で2つの$index値を渡す
-
[解決済み】角度付きng-repeatの逆再生
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] select 要素のデフォルト値を設定するための ng-option の使用方法
-
[解決済み] Angular JS $locationChangeStart 次の url ルートオブジェクトを取得する
-
[解決済み] AngularJSの.$uibModalとは何ですか?
-
[解決済み] AngularJSのディープリンクとは何ですか?
-
[解決済み] ReferenceError: Angularは定義されていません。
-
[解決済み] どのようにangularJSでrouteProviderとlocationProviderを設定するのですか?
-
[解決済み] Angularのui-routerでデフォルトの状態を設定する方法
-
[解決済み] 誰かangularjsの$qサービスの使用について説明してください。[重複しています]。
-
[解決済み] angularjsで$compileを操作する
-
[解決済み] controllerAs "プロパティを使用する理由は何ですか?