DIE LAGE:AngularJs: Wie funktioniert ui-select richtig?
ich eine Winkel App machte, wo ich ui-select verwenden: in der Info-Seite, in der Auswahl hat möglich sein, eine oder mehr Tag zu wählen. Es funktioniert fast, abgesehen von der Tatsache, dass ich Probleme habe, die vorhandenen Tags zu bekommen und anzuzeigen.
DER CODE:
Ausblick:
<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;
});
};
VERSUCH 1:
Es passiert ein sehr seltsames Verhalten. Ich sehe die Tags nicht auf der Info-Seite des Benutzers, und nicht einmal in der ui-Auswahl. Außer wenn 5/6 mal aktualisiert, dann wird es plötzlich magisch funktionieren und die Tags auf der Benutzer-Info-Seite und in der ui-select anzeigen. In beiden Fällen arbeiten und nicht, erhalte ich mehrere Fehlermeldung von der gleichen Art:
nicht Eigenschaft ‚Länge‘ undefinierten lesen kann.
VERSUCH 2:
Um dieses Problem zu lösen, ich diesen Code in der Steuerung hinzugefügt haben:
$scope.info_data = { tags: [] };
$scope. all_tags = [];
und ich bekomme nicht mehr jede Fehlermeldung. Die App ist stabil und ich kann die richtigen Tags auf der Benutzerinfo-Seite sehen. Das einzige Problem ist, dass die Tags im ui-select nicht mehr geladen sind.
Wenn ich ein neues Tag auswähle, dann funktioniert es gut, aber ich verliere die bereits vorhandenen Tags.
Frage (n):
Wie kann ich ui-select richtig arbeiten zu machen? (derzeit v0.8.3) Es gibt ein Konfliktproblem?
Wie kann ich wirklich vorhandene Daten vom Server aufrufen?
Vielen Dank!
Danke für das Hinweis darauf, dass 'propsFilter' ist eine benutzerdefinierte Methode. Das hat mir möglicherweise Stunden Kopf kratzen erspart. Ich werde ein PR einreichen, um so viel zu sagen. – pdoherty926
Hallo, danke für deine Erklärung. Ich habe angefangen, den Code zu verwenden, den du zur Verfügung gestellt hast, aber ich habe einen Fehler gefunden. Es stellt sich heraus, dass es einen Unterschied in dem, was hier gepostet wird, mit dem Commit, auf das Sie verweisen, gibt: Das innere 'for' sollte sein:' für (var i = 0; i
jluna
Ohhhhhhhhhh, dass benutzerdefinierte RequisitenFilter! Vielen Dank! Das ist das Ende von Stunden und Stunden Kopf kratzen! –