0

私はユーザーの配列を持っています。最初に読み込まれたときに姓で並べ替えられた ng-repeat を持ちたいです。新しいユーザーが追加された後、ng-repeat を日付順に並べ替え、次に姓を追加します。基本的に、最新のユーザーを ng-repeat のトップに押し上げたいと思っています。

<th ng-click="menuFilter('lastName', 1);">
  <div ng-class='{"menuSort":sortColumn==1}'>Name <span ng-show="share.orderByField == 'lastName'">
  </div>
</th>

 <tr ng-repeat="user in users | orderBy:orderByField:reverseSort"></tr>

私のJSで...

_this.sortColumn = 1;
_this.orderByField = 'lastName';
_this.reverseSort = false;

 _this.menuFilter = function(section, column) {
      _this.orderByField = section;
      _this.reverseSort = !_this.reverseSort;
      _this.sortColumn = column;
};

//my attempt to reset the order by created at date
if( _this.isRefreshing ) { 
        _this.orderByField = ['createdAt', 'lastName'];
}

基本的に、このコードは何もしていません。HTML のステップが足りないと思います。

ありがとう!

4

2 に答える 2

0

これは、純粋な JavaScript で配列をソートし、orderBy 属性なしで ng-repeat を使用することで最も簡単に実行できると思います。

HTML:

<div ng-repeat="user in users">{{user}}</div>

<input type="text" ng-model="name"></input>
<button ng-click="addName()">Add name</button>

JS:

$scope.users = ["Rusty", "Shackleford", "Dale", "Gribble"];
$scope.users.sort();

$scope.addName = function() {
   $scope.users.unshift($scope.name);
}

JSFiddle: http://jsfiddle.net/asWF9/2/

この回答は、配列をソートするのに役立つ場合があります: https://stackoverflow.com/a/6712080/3675149

于 2014-06-17T07:47:49.543 に答える
0

「プッシュ」の代わりに「シフト解除」を使用して、項目を配列に追加してみてください。js の unshift を使用すると、配列の先頭にアイテムを挿入できます。

于 2014-06-17T10:49:56.840 に答える