2015-02-01 12 views
5

Utilizzando angolare-ui, considerare quanto segue:Come inviare la voce selezionata dall'elenco a discesa angolare-ui al controller angolare

<div class="btn-group" dropdown is-open="status.isopen"> 
    <button type="button" class="btn btn-default btn-labeled dropdown-toggle fa fa-location-arrow" dropdown-toggle ng-disabled="disabled"> 
    Location: {{ loc }} <span class="caret"></span> 
    </button> 
    <ul class="dropdown-menu" role="menu"> 
    <li ng-repeat="choice in locations"> 
     <a>{{choice}}</a> 
    </li> 
    </ul> 
</div> 

L'applicazione:

var app = angular.module('Demo', ['ui.router', 'ui.bootstrap']); 

app.controller('CrmCtrl', ['$scope', function ($scope) { 
$scope.location = "Sutton Coldfield"; 
$scope.locations = [ 
    "Sutton Coldfield", 
    "Coventry", 
    "Redditch", 
    "London", 
    "Manchester", 
    "Sheffield", 
    "Dublin" 
]; 
}]); 

L'obiettivo è quello di ottenere la posizione di selezione da modificare mentre l'utente seleziona una nuova posizione. il dropdown inizia come "Location: Sutton Coldfield" e dovrebbe essere aggiornato a "Location: Coventry" ad esempio. Potrei anche voler usare il valore in una barra laterale, ad esempio.

Esempio e Plunk: http://plnkr.co/edit/5giYygkYcVDJ6RvCKRMv?p=preview

Per raggiungere questo posso aggiornare $scope.loc ma quello che non riesco a capire è come 'cablare' o 'spinta' la scelta selezionato al controllore.

Sto anche cercando un modo migliore pratica di fare questo come sto facendo questo in primo luogo per il mio personale di apprendimento.

Ho visto some discussion sull'utilizzo di ng-model sull'elemento A, ma non è stato preso.

risposta

5

Si avrebbe bisogno di gestire manualmente, si tratta solo di un menu a discesa se si desidera utilizzarlo come un prescelto. Si potrebbe semplicemente impostare un ng-clic sugli elementi ripetuti del menu a discesa.

<a ng-click="setChoice(choice)">{{choice}}</a> 

e nel controllore:

$scope.setChoice = function(data){ 
    $scope.loc = data; 
//Do somethign else.. 
} 

Plnkr

+0

che è grande, grazie. Ma per qualche ragione doverlo maneggiare manualmente 'odori' per me è un po 'strano. Lo sto ancora imparando, quindi non sono del tutto sicuro del perché abbia ancora un odore. A occhio e croce, è perché sto pensando al mio menu a cascata come