2014-07-02 42 views
5

Bir garip sorun bulduk bağlayıcı değildir. Ben verileri aşağıdaki bağlamak sonra $ kapsamı nesnesine ama görünümüne veri güncelleştirilmez bağlayıcı ediyorum benim kodudur

$scope.getPlanDetail = function(){ 

    $rootScope.planBody.checkUpdate= false; 
    $http.post('http://MyServerURL',JSON.stringify($rootScope.planBody)). 
      success(function(response){ 
       $scope.dataVal = response;//Able to view data in console; 
       console.log($scope.dataVal)//data json shown in log window 
       localStorage.setItem("tempDataVal", JSON.stringify(response));//able to set data in localStorage; 
      } 
    } 

getPlanDetail() işlevini kullanarak btn tıklama çağrıda oluyor ng tıklama

Diğer işlevlerde yaptığım aynı işlev (kodun düzgün çalıştığı yöntem kullanın.). Bulduğum tek fark akım AJAX çağrısı

bağlayıcı içinde çünkü bu (kullanarak sonrası yöntemi) soruna neden olup olmadığına emin değilim sunucu tarafında işleme ve onun sonrası yöntemin çok fazla zamanı çok üzere attığı olmasıdır Aynı görünümde (.html) Kukla düğme tıklama etkinliğini ekledim. Ajax başarıdan sonra butona tıklıyorum ve localStorage değişkeninden veri kullanımı nedeniyle görünüm yüklenir.

$scope.dummyClick= function(){ 
    console.log($scope.dataVal);//giving Undefined 
    $scope.dataVal = JSON.parse(localStorage.getItem("tempDataVal"));// this time view binded properly. 
} 

Verilerin başarı yönteminde neden bağlantı oluşturduğunu anlamadım. Sunucu, yanıt vermesi için çok zaman alırsa, bir süre sonra $ kapsam süresi uzar mı?

Teşekkürler.

+0

Kodunuzun daha gösterebilir misiniz? Burada, – maurycy

cevap

1

bir ajax çağrısı içinde modelini değişiyor, o zaman bazı değişiklikler var açısal js bildirmek gerekir.

$ kapsam. $ Apply(); Aşağıdaki satırdan sonra sorununuzu giderir. Bu hat kapsamı güncelleyecektir.

$ scope.dataVal = yanıtı;

sayesinde

Santyy

+0

Sema da @Santyy'ın $ digest işlemini kaçırdığınızı hissediyorum. Ana kod la oru hattı um ae puriyala :) –