2017-08-23 4 views
0

J'essaie de filtrer les données ng-table avec sélectionner déroulant, le problème est de sélectionner une liste déroulante les valeurs ne sont pas remplies et le filtrage ofcos ne fonctionne pas, j'utilise ng-table 2.1. 0 version. J'ai essayé de changer l'objet $ scope.names en objet codé en dur, par exemple, $scope.names=[{title:'Moroni'},{title:'Enos'},{title:'Jacob'}]; puis les valeurs sont remplies dans la liste déroulante, je suppose qu'il doit y avoir la propriété 'title' pour chaque objet, mais le filtrage ne fonctionne pas non plus ? plunkerNg-table sélectionnez le problème de filtrage

Toute aide est très appréciée.

Répondre

1

Comme je peux voir de l'expression dans ngOptions attribut:

ng-options="data.id as data.title for data in $selectData" 

Le format de l'option doit être {id: ..., title: ...}. Je pense que vous pouvez changer votre bloc angular.forEach avec quelque chose comme ceci:

var titles = data.map(function(obj) { return obj.title; }); 
    $scope.names = titles.filter(function(title, i) { return titles.indexOf(title) === i; }) 
         .map(function(title) { return {title: title, id: title}; }); 

Ce n'est pas la méthode la plus rapide pour générer ce tableau (ajouté ce juste pour illustrer la structure). Des moyens plus performants pour ce faire could be found here.

Working fiddle.

+0

Comment ai-je manqué de vérifier dans DOM pour le format ngOptions, je vous remercie beaucoup pour le signaler. – Praveen