私はフロントエンドでAngularで作業していますが、最後にnullに2つのプロパティを含む結果を入れるためにフィルタを実行する方法を理解しようとしています。どちらか一方のプロパティである可能性があります。例えばnullプロパティを含む結果を最後に入れるためにフィルタを実行するにはどうすればよいですか?
:あなたが見ることができるように、私はHTMLでやっている何を
<div ng-repeat="show in shows | filter:query | orderBy:'rating':true">
<a href="/shows/{{show._id}}">
<img ng-src="{{show.poster}}" width="100%"/>
</a>
<div>
<a href="/shows/{{show._id}}">{{show.name}}</a>
<p>
Episodes: {{show.episodes.length}} <br>
<span>Rating: {{show.rating}}</span>
</p>
</div>
</div>
、評価によって発注されます。問題は、プロパティrating
がnull
になると、その要素が結果の先頭に表示され、評価の高い要素がリストに表示されます。
これは私が受けていたオブジェクトです:
{
"_id": 310243,
"name": "Five Star Babies: Inside the Portland Hospital",
"airsDayOfWeek": "Wednesday",
"airsTime": "21:00",
"firstAired": "2016-04-13T00:00:00.000Z",
"network": "BBC Two",
"overview": "An exclusive glimpse inside the UK's only private maternity hospital.\r\n",
"rating": null, // THIS PROPERTY COMES NULL
"ratingCount": 0,
"status": "Continuing",
"poster": "/someImage/path",
"subscribers": []
}
オブジェクトはここから来ている:
$scope.shows = Show.query();
と$scope.shows
戻ります。このこと:ところで、オブジェクトの
[
{
"_id": 73787,
"name": "That '70s Show",
"airsDayOfWeek": "Thursday",
"airsTime": "8:00 PM",
"firstAired": "1998-08-23T00:00:00.000Z",
"network": "FOX (US)",
"overview": "Set in the Wisconsin suburbs...",
"rating": null, // PROPERTY NULL
"ratingCount": 87,
"status": "Ended"
"poster": "/some/Img/Path"
},
{
"_id": 35345,
"name": "Friends",
"airsDayOfWeek": "Thursday",
"airsTime": "8:00 PM",
"firstAired": "1998-08-23T00:00:00.000Z",
"network": "FOX (US)",
"overview": "New York TV Show...",
"rating": 9.1,
"ratingCount": 87,
"status": "Ended"
"poster": null // PROPERTY NULL
}
]
が来て、私が結果の最後に置く必要がある2つのプロパティあなたはnull
,rating
またはposter
です。
TL; DR:
rating
又は
poster
===
null
任意の提案を持つ要素を結果、最も高い評価を有する要素の上部に置き、最後に
[並べ替え機能?
データを調整するか、カスタムフィルタを使用する – charlietfl
@charlietfl APIからデータを調整する方法は? – TheUnnamed
データを受け取ったときにループすることができ、 'null'を' 0'に変更して適切にソートすることができます。あなたのアプリケーションに合わせてデータを操作する必要があることは珍しくありません – charlietfl