5

değiştirdiğinde tamamen güncellenmemiştir. Ajax çağrısı değerini değiştirdiğinde ng-yinelemem neden yenilenmiyor? Birçok Q &'u gördüm Burada olduğu gibi, ama bunların hiçbiri ajax çağrısı hakkında konuşmadı.ng-tekrar listesi, ajax çağrısı değeri

HTML:

<div class="row" ng-controller="EntryCtrl"> 
    <div id="treeview" class="col-xs-4 col-sm-4 col-md-4 col-lg-4"> 
     <ul> 
      <li ng-repeat="root in rootEntry">{{root.Name}}</li> 
     </ul> 
    </div> 
</div> 

JS:

function EntryCtrl ($scope, $http) { 
    $scope.rootEntry = []; 
    $http.get('read/root').success(function(root) { 
     $scope.rootEntry = root; 
     console.log($scope.rootEntry); 
    }); 
} 

Ve konsol sunucusu döndürdü bir dizi oturum yaptı. Ancak html'deki liste hiçbir zaman güncellenmedi. $scope.$apply kullansaydım, $digest ile ilgili bir hata olur.

[Object] 
    0: Object 
     Attributes: null 
     Id: "534580464aac494e24000001" 
     Name: "Registry" 
     Path: "" 
     __proto__: Object 
     length: 1 
    __proto__: Array[0] 

Konsol Çıktı Bu yüzden root sunucu getiri yapısı bu. Veri tipi sorun olur mu? Çünkü Array yerine Object. Golang'ı sunucu olarak kullanıyorum ve MongoDB'den verileri paketlemek için json.Marshal() kullanın.

Güncelleme

function EntryCtrl ($scope, $http) { 
    $scope.rootEntry = []; 
    $http.get('read/root').success(function(root) { 
     $scope.rootEntry = root; 
     console.log($scope.rootEntry); 
    }); 
    console.log($scope.rootEntry); 
} 

ikincisi çıktı [] olduğunu. Muhtemelen $ http'un uyumsuzluğu nedeniyle, sebebi olacak mı? Nihai

nedenini biliyorum. Düğümle bazı süslemeler yapacak olan jsTree adlı bir eklenti kullandım, böylece eklediğim düğümün üzerine yazılacaktır.

Hepinize teşekkürler.

+3

Bu sorunsuz çalışır, '$ http' bir özetini tetikler - Eğer geri almak zaman emin verileri farklıdır? – tymeJV

+0

@tymeJV Eminim farklı. Daha fazla ayrıntı soruda güncellendi. – Melkor

cevap

0

Ben kodunuzu test edilmiş ve tymeJV söylediği gibi, ben bazı olası hatalar için konsol penceresini kontrol öneririz uygulamanızda bir sorun yoktur ettik.

Örnek:

function EntryCtrl ($scope, $http) { 
    $scope.rootEntry = []; 
    $http.get('https://api.github.com/users/mralexgray/repos').success(function(root) { 
     $scope.rootEntry = root; 
     console.log($scope.rootEntry); 
    }); 
} 

Canlı örnek: http://plnkr.co/edit/Grlgfob6tjE63JizWdCD?p=preview

+0

Sorunun güncellemesine bir göz atabilir misiniz? Konsol çıkışı ve veri türü hakkında bazı detaylar ve düşüncelerim var. – Melkor

+0

, nesneleri (nesne, nesne ... n) tutan bir dizidir. Bu nedenle, görünümünüzün neden güncellenmediğini hala anlamıyorum. –

İlgili konular