2015-10-17 4 views
0

Я пытался использовать этот ngTable example для фильтрации столбцов с использованием выбранных значений. HTML код (таблица часть)Использование фильтра select в ngTable

<table ng-table="tableParams" class="table" show-filter="true"> 
    <tbody> 
    <tr ng-repeat="row in $data"> 
     <td data-title="'Name'" filter="{name: 'select'}" filter-data="names" sortable="'name'">{{ row.name }}</td> 
     <td data-title="'Age'" filter="{age: 'text'}" sortable="'age'">{{ row.age }}</td> 
    </tr> 
    </tbody> 
</table> 

код Javascript

var app = angular.module('ngTableApp', ['ngTable']) 
     .controller('selectFilterController', function($scope, $filter, $q, NgTableParams) { 
     var data = [{name: "Moroni", age: 50}, 
        {name: "Tiancum", age: 43}, 
        {name: "Jacob", age: 27}, 
        {name: "Nephi", age: 29}, 
        {name: "Enos", age: 34}, 
        {name: "Tiancum", age: 43}, 
        {name: "Jacob", age: 27}, 
        {name: "Nephi", age: 29}, 
        {name: "Enos", age: 34}, 
        {name: "Tiancum", age: 43}, 
        {name: "Jacob", age: 27}, 
        {name: "Nephi", age: 29}, 
        {name: "Enos", age: 34}, 
        {name: "Tiancum", age: 43}, 
        {name: "Jacob", age: 27}, 
        {name: "Nephi", age: 29}, 
        {name: "Enos", age: 34} 
       ]; 
     $scope.names = ['Moroni', 'Enos', 'Nephi']; 
     $scope.tableParams = new NgTableParams({page: 1, count: 10}, {dataset: data}); 

     }) 

Когда я запускаю этот код plunker, то выберите значения для столбца 'Название' пустые.

example говорит

Выбрать, фильтр будет получать свои данные, вызвав функциюfetchData, определенного для столбца.

Но нет fetchData функция вызывается в коде в этом примере. Я смущен, как в чем проблема?

+0

Проверьте ошибки в plunker .. – Rayon

+0

@RayonDabre Похоже, вопрос с plunker. Тот же код на моей локальной машине не показывает ошибок (но тот же вопрос упоминается в моем Вопросе). – rajendra

ответ

0

От example я понял, что формат, используемый нг-таблица для фильтра-данных атрибутов в HTML (для некоторых значений) является массивом объектов в следующем виде.

$scope.names = [{id: "", title: ""}, {id: 'Moroni', title: 'Moroni'}, {id: 'Enos', title: 'Enos'}, {id: 'Nephi', title: 'Nephi'}]; 

Обновлено plunker.

0

Должно быть написано как:

$scope.names = [{"id": "", "title": ""}, {"id": "Moroni", "title": "Moroni"}]; 
Смежные вопросы