2013-07-24 16 views
33

Sto cercando di implementare un typeahead in angolare utilizzando http://angular-ui.github.io/bootstrap/

sembra che dovrebbe essere facile, ma sto ottenendo il seguente errore:

Global symbol $viewValue requires explicit package name.

cosa è $viewValue? Non sembra essere definito.

Grazie

risposta

24

ecco un esempio typeahead lavoro:

<div class="container"> 
    <div ng-controller="mainCtrl" class="row-fluid"> 
     <form class="row-fluid"> 
      <div class="container-fluid"> 
       <input type="text" ng-model="selected" typeahead="state for state in states | filter:$viewValue" /> 
      </div> 
     </form> 
    </div> 
</div> 

<script> 
angular.module('myApp', ['ui.bootstrap']) 
.controller("mainCtrl", function ($scope) { 
    $scope.selected = ''; 
    $scope.states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Dakota', 'North Carolina', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming']; 
}); 
</script> 

http://jsfiddle.net/alfrescian/ZjPWe/

$viewValue è il valore corrente nella vista - il vostro input stringa. $viewValue è specificato in ngModel.

+0

Ok ho risolto il problema - l'errore era perché sto scrivendo la mia pagina in perl e avevo bisogno di sfuggire alla var $ viewValue. Tuttavia, ancora non capisco perché il suo $ viewValue e non 'selezionato' nel filtro - come nella direttiva ng-model? $ ViewModel viene esportato dalla direttiva in qualche modo? – stampeder

+5

selezionato è il valore che viene selezionato dai valori typeahead. $ viewValue è la stringa corrente del tuo input. $ viewValue fa parte di ngModel: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController – alfrescian

+0

Ah, ok - grazie per questo, e la risposta rapida. Inoltre sto usando una serie di oggetti - che rappresentano gli indirizzi piuttosto che un semplice array - e voglio popolare un altro campo con il codice postale quando clicco sull'indirizzo completo nel typeahead. È possibile? Sto guardando ng-change, ma non avendo successo- http://jsfiddle.net/UxTBB/ – stampeder

Problemi correlati