2016-10-13 3 views
2

Ich habe einen eckigen Typ. Hier ist ein Link zu Plunkr, den ich erstellt habe. https://plnkr.co/edit/8XwhSXsZlyd0oKSljS9t?p=preview.Angular uib typeahead, typeahead-is-open funktioniert nicht

Ich habe typeahead-is-open-Eigenschaft verwendet.

Was ich will ist, wenn ich auf den Uib-Typehead klicke, sollte es öffnen und alle Werte anzeigen. Ich gehe davon aus, den typeahead-is-open auf True zu setzen, macht diesen Job. Ist das richtig? Momentan öffnet sich der typeahead nicht, wenn typeahead-is-open auf true gesetzt wird.

Hier ist mein html

<input ng-click = "myFunc()" click-outside="typeaheadIsOpen = false;" type="text" ng-model="selected" uib-typeahead="state for state in states | filter:$viewValue | limitTo:8" typeahead-is-open="typeaheadIsOpen" class="form-control"> 

Mein JS

$scope.myFunc = function() { 
    $timeout(function() { 
     $scope.typeaheadIsOpen = true; 
     $scope.$digest(); 
    }) 
} 

Ich habe die gebundene typeahead-ist-offen "typeaheadIsOpen" Variable. Wenn ich auf den Typahead klicke, rufe ich myFuc() auf, wodurch die Variable typeaheadsOpen auf true gesetzt wird.

Aber die Typehead öffnet nicht. Gibt es etwas, was ich falsch mache?

Antwort

4

Es scheint, dass Sie nicht steuern können, ob das Typahead-Popup mit dem Attribut typeahead-is-open angezeigt wird oder nicht. Hier ist der relevante Teil aus dem Quellcode:

UibTypeaheadController

//binding to a variable that indicates if dropdown is open 
var isOpenSetter = $parse(attrs.typeaheadIsOpen).assign || angular.noop; 
... 
scope.assignIsOpen = function (isOpen) { 
    isOpenSetter(originalScope, isOpen); 
}; 

Dieses Attribut verwendet wird Expression zu erhalten verwendet, um den Umfang zu aktualisieren, wenn typeahead geöffnet ist, ist aber nicht bekommen Wert von Umfang verwendet und Kein relevanter Beobachter ist eingerichtet.

Verwandte Themen