2013-04-03 17 views
10

Sto tentando di aggiornare il modello select2 a livello di codice e per la visualizzazione da aggiornare ma non sembra funzionare.Direttiva UI angolare select2 - aggiornamento del modello a livello di codice non riflesso sul widget

Ecco un campione plunker biforcuta dal progetto UI angolare: http://plnkr.co/edit/kQROgr?p=preview

Ho provato ad aggiungere initSelection() accroding a Select2 docs (http://ivaynberg.github.com/select2/ "Reagendo alle variazioni del valore esterno"), ma che non ha funzionato. Ho anche provato con select2 3.3.2 e non è stato risolto.

Ci sono due problemi: 1) Fare clic su "Aggiorna modello", il modello si aggiorna ma non aggiunge un tag al widget select2. 2) Fare clic su "Aggiorna modello" e quindi selezionare select2 per selezionare un secondo tag, il primo tag aggiunto da "Aggiorna modello" scompare.

+0

Questo potrebbe aiutare? https://github.com/angular-ui/angular-ui/issues/455 – DanB

+0

Sei riuscito a farlo funzionare. Sto incontrando lo stesso problema. – testing123

+0

Argh l'ho dato al vecchio college prova ... so che funziona per il record perché lo uso in tutta l'app che sto creando e spingo il deta esterno sul modale tutto il tempo e aggiorna la select2 così io Sono sicuro che c'è qualcos'altro in gioco qui ... – btm1

risposta

0

So che la domanda è un po 'vecchia ma ehi ... l'ho trovata e non sapevo la risposta.

sono riuscito a fare quello che volevo impostando il modello e poi ricordando initSelection() nella configurazione select2Options

Quindi il mio config è stato in questo modo:

$scope.select2Options = { 
allowClear: true 
minimumInputLength: 3 
quietMillis: 1000 
initSelection: -> 
    $scope.property 
query: (query)-> 
    Properties.query({q: query.term}, (response)-> 
    data = {results: processData(response['properties'])} 
    query.callback(data) 
    ) 

    processData = (data)-> 
    results = [] 
    angular.forEach(data, (item, index)-> 
     results.push(item) 
    ) 
    return results 

}

I quindi il mio modale ha restituito l'oggetto appena creato in questo modo:

modalInstance.result.then((result)-> 
    $scope.property = result 
    $scope.select2Options.initSelection() 
) 

Fondamentalmente una volta aggiornato il modello ho dovuto reinizializzare manualmente il widget select2. Penso che questo possa essere gestito con un $ scope. $ Guarda se lo volessi davvero ma sarebbe probabilmente uno spreco a meno che tu non abbia la proprietà aggiornata da qualche punto o qualcosa del genere.

Problemi correlati