ulまたはdivのセット内のアイテムの任意のリストが与えられた場合、角度のある方法を使用して、選択したアイテムをリスト/ディスプレイの一番上に表示したいと思います。
$scope.items = [{name: "Garfield", id: 1}, {name: "Simon", id: 2}, {name: "Whatever", id: 3}]
$scope.model = {selectedItemId: 3}
ビューでは、ng-repeatを使用します
ul.items
li.item ng-repeat="item in items" ng-class="{selected: model.selectedItemId == item.id"
div {{item.name}}
AngularJSアプローチを使用して残りの順序をそのままにしながら、選択したアイテムをフィルター処理またはリストの一番上に並べ替えたいと思います。
データはすでに配列として適切にフォーマットされているため、カスタムフィルターを使用します。
Angularには多くの組み込みフィルターが用意されていますが、独自のフィルターを作成するのは非常に簡単です。私はここに例を置くつもりだったが、検索はサム・ディアリングによって作成された非常に素晴らしい例見つかっここを私は本当にに改善することができません。
アクセスを容易にするために、コードの関連部分は次のとおりです。
app.filter('currentUserToTop', function () {
return function (users, current) {
var newList = [];
angular.forEach(users, function (u) {
if (u.id == current) {
newList.unshift(u);
}
else {
newList.push(u);
}
});
return newList;
};
});
ここでは、この例に関連したフィドルです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加