0
私のリストにSelect-Fieldを持つフィルタを作成しました。AngularJSリストにクラスを追加 - 一致しないアイテム
<div ng-controller="streamsController" class="stream-list-wrap">
<div class="form-field">
<select id="selectedGenre" ng-model="selectedGenre" ng-options="genre for genre in filteredGenres" ng-change="resetFilter()" >
</select>
</div>
<ul class="stream-list" id="stream-list">
<li ng-repeat="streams in jsonDataStream | filter:{genre: selectedGenre} | setGenres">
<audio id="player_{{streams.nbr}}" preload="none" controls="controls">
<source src="{{streams.source}}" type="{{streams.type}}" />
</audio>
<span class="player-wrap">
<span class="player-item player-number">
<span>{{streams.nbr}}</span>
</span>
<span class="player-item player-info">
<span><strong >{{streams.stream}}</strong><br />
{{streams.description}}</span>
</span>
<span class="player-item player-ctrl">
<span id="playpause_{{streams.stream}}" ng-click="playPause($event, 'player_'+streams.nbr, this)" class="play-button cv-icon-box-icon icon-play"></span>
<input type="range" class="volume" value="100" id="volume_{{streams.nbr}}" data-player="player_{{streams.nbr}}" onchange="volumeChange(this)" step="0.1" min="0" max="1" />
</span>
</span>
</li>
</ul>
</div>
いつもすべての結果が見たいです。しかし、項目がフィルタ上で一致しない場合は、影響を受ける項目の幅を無効にしたいと思います。
{
"stream": "Stream Title",
"description": "lorem ipsum dolor",
"source": "http://domain.strem.com",
"type": "audio/mpeg",
"nbr": "123",
"genre": ["genre_01", "genre_02", "genre_03"]
}
私は正しく理解していれば、あなたの配列をフィルタリングしたくないです。その要素に含まれるすべての要素を表示したいだけで、その中にはクラスが必要です。 ng-classを使用してください: 'ng-class =" {disabled:!hasSelectedGenre(stream)} "' –