Comment puis-je regarder les nouveaux changements de chaîne de recherche ui-select (anciennement ui-select2) de l'interface utilisateur angulaire?

J'ai remarqué que le Angular-UI ont cessé de l'INTERFACE utilisateur-Select2 directive en faveur de la nouvelle INTERFACE utilisateur-Sélectionnez (avec de multiples thèmes - select2, bootstrap, selectize).

Il ressemble à ceci:

<ui-select multiple ng-model="multipleDemo.colors" theme="select2" ng-disabled="disabled" style="width: 300px;">
    <ui-select-match placeholder="Select colors...">{{$item}}</ui-select-match>
    <ui-select-choices repeat="color in availableColors | filter:$select.search">
        {{color}}
    </ui-select-choices>
</ui-select>

<p>Selected: {{multipleDemo.colors}}</p>

Au départ, mon selectbox est censé être vide, mais prêt à prendre les caractères tapés, qui est une chaîne d'au moins 4 caractères et ensuite faire un appel API pour récupérer une liste de valeurs qui sont la pour remplir la boîte. Une valeur sera choisie, et la recherche doit être répétée si nécessaire.

J'ai d'abord essayé $watching la ng-model qui dans ce cas est multipleDemo.colors (à l'aide de cet exemple de la démos). L'appel de l'API n'a jamais eu lieu et j'ai compris pourquoi. Le modèle actuel n'est pas du tout changé, car il modifie uniquement lorsqu'une sélection est faite (mon selectbox est vide donc rien ne peut être sélectionné).

Ma conclusion est que je (être capable de) $watch ce qui a été ajouté en tant que filtre, à savoir filter: $select.search.

Personne ne sait comment suis-je censé l'utiliser dans mon contrôleur?

Ce:

$scope.$watch('$select.search', function(newVal){
    alert(newVal);
});

ne fonctionne pas.

EDIT:
Pour toute personne de référence, voir cette courte discussion: Est-il possible d'ajouter le support pour la requête personnalisée fonction comme la select2?

EDIT 2:

J'ai résolu ce problème en utilisant $emit à partir de la directive, de sorte que la valeur est disponible dans mon contrôleur de maintenant. Mais maintenant je voudrais savoir comment puis-je remplacer cette partie de la directive la directive elle-même peuvent être laissés intacts, de sorte qu'il ne se casse pas dans les futures mises à jour?

source d'informationauteur developer10