2015-03-17 1 views
1

J'ai deux liste de sélection HTML. Comment puis-je les relier facilement? Je veux dire quand je sélectionne l'option du premier choix, certaines options de la deuxième sélection sont montrées à caché? Sélectionne les listes HTML créées par PHP.Comment faire des sélections connexes dans Angular?

Répondre

1

Il existe plusieurs façons d'utiliser angulaire. Une façon est d'utiliser le ng changement:

<select ng-model="selectedItem1" ng-options="item in items1" ng-change="update(selectedItem1)"></select> 

et ensuite la fonction de mise à jour (selectedItem1) mettre à jour votre liste de envois2. Et vice versa pour vos articles2 déroulants. Vous pouvez également utiliser une fonction $ watch pour regarder la liste selectedItem1 et mettre à jour items2 dans cette fonction. Vous pouvez également utiliser la fonction $ watch pour regarder la liste selectedItem1 et mettre à jour items2.

Si vous avez besoin d'utiliser un filtre personnalisé, voir ici: https://docs.angularjs.org/tutorial/step_09

angular.module('myModule', []).filter('items2', function() { 
    return function(selectedItem1, items2) { 
    for (var i = 0; i < items2.length; i++) { 
     // return items you want 
    } 
    }; 
}); 

Ensuite, dans votre contrôleur, comprennent ce filtre comme la dépendance items2Filter par le filtre et vous annexant pouvez mettre à jour scope.items2 $ comme ceci:

$scope.items2 = items2Filter($scope.selectedItem1, $scope.items2); 
+0

Il existe un exemple pour une compréhension claire? Merci – Chaps

+0

La réponse de Mark Rajcok ici: http://stackoverflow.com/questions/14386570/getting-the-ng-object-selected-with-ng-change sauf passer dans l'élément sélectionné en tant que paramètre et mettre à jour la deuxième liste dans la fonction de mise à jour. – Sam

+0

Peut-être pourriez-vous donner plus d'informations sur la manière dont vous souhaitez filtrer les éléments. Vous pouvez utiliser un filtre personnalisé pour le faire ou peut-être utiliser lodash sera possible – Sam