2017-05-29 1 views
0

In meiner Anwendung, in der initialize, habe ich festgestellt, dassWarum wird meine Arrayvariable nicht in ng-repeat angezeigt, nachdem sie gefüllt wurde? (Angular Js)

vm.allStates = []; 

Und dann auslösen ich eine Funktion ng klicken und Update Staaten basierend auf Land.

vm.allStates = result; 
console.log(vm.allStates); 

ich bekomme die gewünschte Ausgabe, indem Sie so tun. Es nichts ausgibt Meine Ausgabe ist so etwas wie

["selangor"]; 

jedoch in der HTML-Klinge (wie ich bin mit Laravel 5.4), wo i

<option ng-repeat="option in vm.allStates" value="{{ option }}">@{{ option }}</option> 

schreiben. der Zwischenzeit, wenn bei der Initialisierung, erklärte ich, dass,

vm.allStates = ["selangor"]; 

Es Anzeige hat jedoch diese nicht dynamisch wird.

Ich frage mich, ob das etwas mit ng-Modell zu tun hat? Da es den Wert nicht aktualisiert, obwohl ich die Ausgabe console.log.

ich nicht ng-Optionen Benutzer, als ich brauchte einen ausgewählten Wert als Platzhalter (in diesem Fall eine Option, die standardmäßig deaktiviert und ausgewählt ist

Danke

EDIT. 1:

storeService.storeByCountry(vm.countryId).then(function (response){ 
       vm.totalStores = response.length; 

       if(response[0].country.has_zone){ 
        vm.showZones = true; 
        vm.allZones = [...new Set(response.map(response => response.zone))]; 
        vm.totalZones = vm.allZones.length; 
        vm.showFilterZones = true; 
       } 
       if(response[0].country.has_province){ 
        vm.showProvinces = true; 
        vm.allProvinces = [...new Set(response.map(response => response.province))]; 
        vm.totalProvinces = vm.allProvinces.length; 
        vm.showFilterProvinces = true; 
       } 
       if(response[0].country.has_state){ 
        vm.showStates = true; 
        vm.allStates = [...new Set(response.map(response => response.state))]; 
        vm.totalStates = vm.allStates.length; 
        vm.showFilterStates = true; 
       } 

       angular.forEach(response, function(value, key) { 
        addMarker({lat : +value.latitude, lng : +value.longitude}, vm.countryFilter); 
       }); 
       console.log(vm.allStates); 
       panToCountry(vm.countryFilter); 
       return; 
      }, function(error){ 
       APP.func.alerror(error); 
      }); 
+0

bitte einen entsprechenden Code schreiben, wo Sie Daten in 'vm.allStates' – Pengyy

+0

Es füllen könnte ein Problem mit Datenstruktur von einem Ergebnis führen, – madhur

+0

is vm ist dein Umfang variabel ?? fehlt dir hier der bereich ?? und 1 weitere Sache hast du initialisiert vm zuerst $ scope.vm = {}; – mastermind

Antwort

0

Nach dem Tag des Debuggens und des Nachdenkens stellt sich heraus, dass dieses Problem nicht dadurch verursacht wird, dass der Winkel das Array nicht aktualisiert. Es ist tatsächlich. Das Problem hier ist das ausgewählte Stil-Plugin, das ich verwendet habe.

Ich verwendete bootstrap-select für das Aussehen der Auswahlbox, es stellt sich heraus, dass der Wert dort nicht aktualisiert wird, und so, wenn ich dieses Plugin entfernen, kann ich die Ergebnisse sehen, die ich wollte. Natürlich gibt es Abhilfe für dieses Problem jedoch habe ich beschlossen, nicht weiter zu suchen auf sie

0

das Problem mit Ihrem Code könnte sein, dass Sie vm.allState in Ihrem html verwenden. Sie sollten das nicht tun (es sei denn vm in der Tat der Name alias ist). ich glaube, vm referes y unsere Controller-Instanz (wie es normalerweise der Fall ist). In diesem Fall sollten Sie eine Variable in Ihrem Controller verwenden, die den Controller-Alias ​​in html verwendet.

Erläuterung:

Wenn Ihr Controller vm.name = "Superman";

hat, wird dies in html als ctrl.name und nicht als vm.name verfügbar sein. Möglicherweise haben Sie Ihren Alias ​​anders benannt und Sie sollten denselben Alias ​​verwenden.

+0

Nein, ich denke nicht, ich kann vm.name ausdrucken, wenn ich es im Controller deklariere, wie ich xxController als vm , so wird es kein Problem geben, Teil –

+0

zu nennen. Mit Ausdruck, meinst du Drucken in Konsole oder Bildschirm? –

+0

nicht Konsole, aber in HTML .. –

Verwandte Themen