LA SITUAZIONE:AngularJs: come far funzionare ui-select correttamente?
Sto facendo un app angolare dove devo usare ui-select: nella pagina di informazioni utente, nel selezionare devono essere possibile scegliere uno o molti tag. È quasi funzionante, tranne per il fatto che ho problemi ad ottenere e visualizzare i tag preesistenti.
IL CODICE:
Vista:
<ui-select multiple ng-model="info_data.tags" theme="bootstrap" ng-disabled="disabled">
<ui-select-match placeholder="Select tag...">{{$item.name}} </ui-select-match>
<ui-select-choices repeat="tag in all_tags | propsFilter: {name: $select.search}">
{{tag.name}}
</ui-select-choices>
</ui-select>
<p>Selected: {{info_data.tags}}</p>
Controller:
$http({
url: base_url + 'main/db_get_all_tags',
method: "POST",
}).success(function (data) {
$scope.all_tags = data;
});
$scope.show_info = function() {
var result_info = DbService.get_info($stateParams.db_data_id);
result_info.then(function(data)
{
$scope.info_data = data;
});
};
TENTATIVO 1:
Accade un comportamento molto strano. Non vedo i tag nella pagina delle informazioni dell'utente, e nemmeno nella selezione ui. Tranne se si aggiorna 5/6 volte, poi improvvisamente funzionerà magicamente, visualizzando i tag nella pagina delle informazioni utente e nella selezione ui. In entrambi i casi, di lavoro e non, ricevo molte messaggio di errore dello stesso tipo:
Impossibile leggere proprietà 'lunghezza' di indefinito.
TENTATIVO 2:
Per risolvere questo problema, ho aggiunto questo codice nel controller:
$scope.info_data = { tags: [] };
$scope. all_tags = [];
E non ho ricevuto più alcun messaggio di errore. L'app è stabile e posso vedere i tag appropriati nella pagina delle informazioni dell'utente. L'unico problema è che i tag non vengono più caricati nella selezione ui.
Se seleziono un nuovo tag, funziona correttamente, ma perdo i tag preesistenti.
Question (s):
Come posso fare ui-select che funziona correttamente? (attualmente v0.8.3) C'è un problema di conflitto?
Come posso chiamare correttamente i dati preesistenti dal server?
Grazie mille!
Grazie per aver sottolineato che 'propsFilter' è un metodo personalizzato. Ciò mi ha potenzialmente risparmiato ore di grattacapo. Ho intenzione di inviare una PR per selezionare ui così tanto. – pdoherty926
Ciao, grazie per la tua spiegazione. Ho iniziato a usare il codice che hai fornito, ma ho incontrato un bug. Risulta che c'è una differenza in ciò che viene pubblicato qui con il commit di riferimento: Il 'for' interno dovrebbe essere:' for (var i = 0; i
jluna
Ohhhhhhhhhh che puntelli personalizzatiFilter! Grazie! Questa è la fine delle ore e ore e ore di grattarsi la testa! –