2016-08-08 40 views
0

Hier ist meine Jquery Ajax-AufrufWie Daten verwenden, die von jquery.ajax in ng-repeat zurückgegeben werden?

jQuery.ajax({ 
      url: view_url+"get_messagekinds", 
      success: function (result) { 
       $scope.response = result; 
      }, 
      async: false 
     }); 

und hier ist HTML-Code:

<select id="select_msg_kind" 
        name="select_msg_kind" 
        class="form-control" 
        ng-model="message_kind_selected" style="height:30px;width:220px"> 
        <option value="0">--Select Message Kind--</option> 
        <option ng-repeat="res in response track by $index" value="{{ res.id }}"> 
         {{ res.name }} 
        </option> 
       </select> 

aber Auswahlliste ist leer. hier ist Screenshot

enter image description here

Wie ich mit Datenauswahlliste bevölkern kann durch Ajax-Aufruf zurück mit ng-wiederholen?

sind hier Daten von Ajax-Aufruf zurückgegeben:

[{"id": 1, "name": "Test1"}, {"id": 2, "name": "test2"}, {"id": 3, "name": "Test3"}] 
+0

Bitte fügen Sie das Ergebnis von Ajax auch – guradio

+0

@guradio meine Frage –

+1

aktualisiert Tipp: Verwenden Sie nicht 'jQuery.ajax', stattdessen verwenden Winkel '$ http-Service. Letzteres wird angular bemerken, dass ein sogenannter "Digest-Zyklus" laufen sollte – devqon

Antwort

0

Tipp: Seien Sie nicht jQuery.ajax, anstelle $http -Dienst eckige verwenden. Letzteres wird Winkel feststellen, dass eine so genannte „verdauen-Zyklus“ laufen soll:

$http.get(url).then(function(result) { 
    // success 
    $scope.response = result; 
}, function() { 
    // error 
}); 

Wenn Sie wirklich Jquery AJAX verwenden wollen (ich glaube, Ihr Grund ist, weil Sie async: false verwenden), sollten Sie den Digest Zyklus auslösen selbst:

jQuery.ajax({ 
    url: view_url+"get_messagekinds", 
    success: function (result) { 
     // trigger digest cycle with '$apply' 
     $scope.$apply(function() { 
      $scope.response = result; 
     }); 
    }, 
    async: false 
}); 

Sie jedoch nicht async verwenden sollten, können Sie einfach die Versprechen verwenden und die Callback-Funktionen des $http Service.

+0

Erhalte diesen Fehler: angular.min.js: 107 Fehler: [$ rootScope: inprog] http://errors.angularjs.org/1.4.4/$rootScope/inprog?p0=NaNigest bei Fehler (nativ) bei http://10.10.10.108000/static/cmt_beta/js/angular.min.js:6:416 bei q (http://10.10.10.10:8000/static/cmt_beta/js/angular.min .js: 125: 271) at n. $ apply –