2013-03-01 3 views
1

Я пытаюсь сделать отсортированную таблицу. Я написал следующее представление и контроллер:Моя функция области не работает в angularjs

Вид:

<div class="container" ng-app> 
<div ng-controller="SortableTblCtrl"> 
    <table class="table table-hover table-bordered span12"> 
     <tr> 
      <th ng-repeat="metadata in metadatas" ng-click="sort('{{metadata.columnProperty}}')" style="cursor: pointer">{{metadata.columnName}} </th> 
     </tr> 
     <tr ng-repeat="person in persons | orderBy:predicate:reverse"> 
      <td>{{person.firstName}}</td> 
      <td>{{person.lastName}}</td> 
     </tr> 
    </table> 
</div> 

Контроллер:

function SortableTblCtrl($scope) { 
$scope.persons = [ 
    { "firstName": "firstname1", "lastName": "lastname1" }, 
    { "firstName": "firstname2", "lastName": "lastname2" }, 
    { "firstName": "firstname3", "lastName": "lastname3" } 
]; 
$scope.predicate = ""; 
$scope.reverse = false; 

$scope.sort = function (pred) { 
    $scope.predicate = pred; 
    $scope.reverse = !$scope.reverse; 
}; 

$scope.metadatas = [ 
    { "columnProperty": "firstName", "columnName": "First Name" }, 
    { "columnProperty": "lastName", "columnName": "Last Name" } 
]; 

}

Когда я нажимаю на седловине Заголовки столбцов ничего не происходит. Я нашел что-то, то есть когда я меняю ng-click="sort('{{metadata.columnProperty}}')" на ng-click="sort('firstName')", он сортирует первый столбец, когда я нажимаю на каждый заголовок столбца.

ответ

1

Это: ng-click="sort('{{metadata.columnProperty}}')" должно быть ng-click="sort(metadata.columnProperty)".

Смежные вопросы