하지 않습니다,하지만 나는 NG 반복에 해 orderBy 필터에 문제로 실행하십시오. PHP 스크립트에서 AJAX를 통해 JSON 데이터를 가져옵니다. 데이터가 잘로드되고, 그냥 작동하지 않는 순서 일뿐입니다. 이건 내 자바 스크립트 코드AngularJS와 해 orderBy 내가 학생들을위한 작은 데모 AngularJS와 응용 프로그램 작업입니다 아무것도
<div ng-controller="MemberListController">
<pre>Sorting predicate = {{predicate}}; reverse = {{reverse}}</pre>
<hr/>
<button ng-click="predicate=''">Set to unsorted</button>
<table class="table">
<thead>
<tr>
<th>
<button ng-click="order('gender')">Geslacht</button>
<span class="sortorder" ng-show="predicate === 'gender'" ng-class="{reverse:reverse}"></span>
</th>
<th>
<button ng-click="order('first_name')">Voornaam</button>
<span class="sortorder" ng-show="predicate === 'first_name'" ng-class="{reverse:reverse}"></span>
</th>
<th>
<button ng-click="order('last_name')">Achternaam</button>
<span class="sortorder" ng-show="predicate === 'last_name'" ng-class="{reverse:reverse}"></span>
</th>
<th>Geboren</th>
<th>Lid sinds</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="member in members track by member.id | orderBy:predicate:reverse" ng-hide="member.deleted == 1">
<td>{{ member.gender }}</td>
<td>{{ member.first_name }}</td>
<td>{{ member.last_name }}</td>
<td>{{ member.birth_date | date:'dd-MMM-yyyy' }}</td>
<td>{{ member.member_since | date:'dd-MMM-yyyy' }}</td>
</tr>
</tbody>
</table>
</div>
:
이
함께 내가 걱정 HTML 페이지의 일부입니다 JSON 데이터가에서 매우 간단한 스크립트에 의해 생성되는(function()
{
// init the module
var app = angular.module('ledenjs', []);
// define the memberlist controller
app.controller('MemberListController', ['$scope', '$http', function ($scope, $http)
{
// define and set the scope properties
$scope.members = [];
$scope.predicate = 'last_name';
$scope.reverse = false;
// define the order method
$scope.order = function (predicate)
{
$scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
$scope.predicate = predicate;
};
// read the members from the db
$http.get('MY_URL_HERE')
.success(function (response)
{
console.log('Received ' + response.length + ' members.');
$scope.members = response;
})
.error(function()
{
alert('Could not retrieve members from server.');
});
}]);
})();
샘플 테이블 :
$result = mysqli_query($mysqli, "SELECT * FROM ledenjs");
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
header("Content-Type: application/json");
echo json_encode($data);
반환 된 데이터의 조각 :
(당신이 내 코드가에 샘플을 기반으로 볼 수) 그래서 ... 내가 지금 여기에이 주제에 대한 질문을 검토 한[{"id":"10001","birth_date":"1953-09-02","first_name":"Georgi","last_name":"Facello","gender":"M","member_since":"1986-06-26","deleted":"0"},{"id":"10002","birth_date":"1964-06-02","first_name":"Bezalel","last_name":"Simmel","gender":"F","member_since":"1985-11-21","deleted":"0"},{"id":"10003","birth_date":"1959-12-03","first_name":"Parto","last_name":"Bamford","gender":"M","member_since":"1986-08-28","deleted":"0"},{"id":"10004","birth_date":"1954-05-01","first_name":"Chirstian","last_name":"Koblick","gender":"M","member_since":"1986-12-01","deleted":"0"}]
, 내가있는 OrderBy here에 대한 AngularJS와 문서를 검토 한 결과 ,하지만 여전히 내 테이블은 정렬되지 않습니다.
이러한 질문의 대부분은 "orderBy는 배열에서만 객체에 대해 작동하지 않습니다"라고 대답하지만 데이터는 배열로 보이며 실제 검색은 정상적으로 작동합니다. 페이지를로드 할 때 정확한 레코드 수로 콘솔 로그 행을 봅니다.
이것은 천천히 벽을 몰고 가고 있습니다 ... 어떤 도움을 주시면 대단히 감사하겠습니다.
마크.
SOLVED : "트랙 바이"및 "orderBy"가 간섭하는 경향이 있음을 지적한 Dmitriy Khudorozhkov에게 감사드립니다. 이 작업은 모든 필터 후, 마지막에 "에 의해 트랙"를 넣어 것입니다 수행합니다
<tr ng-repeat="member in members | orderBy:predicate:reverse track by member.id">
사용중인 Angular의 버전을 물어볼 수 있습니까? –
v1.5.6을 사용 중입니다. – kathmann