2014-07-02 21 views
5

Tôi đã tìm thấy một vấn đề lạ khi làm việc ở góc js Tôi đang nhận dữ liệu bằng cách sử dụng cuộc gọi ajax. Tôi ràng buộc dữ liệu cho đối tượng $ phạm vi nhưng quan điểm là không nhận được cập nhật sau khi dữ liệu ràng buộc Sau đây là mã của tôi

$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() chức năng là nhận được kêu gọi btn nhấp chuột sử dụng ng-click

Chức năng tương tự tôi đã thực hiện trong trường hợp khác (sử dụng lấy phương thức.) Trong đó mã hoạt động đúng cách. Sự khác biệt duy nhất mà tôi tìm thấy là cuộc gọi AJAX hiện tại hiện đang mất nhiều thời gian do quá trình xử lý phía máy chủ và phương thức đăng của nó Tôi không chắc chắn liệu điều này (sử dụng phương thức bài đăng) có gây ra sự cố trong ràng buộc

Trên cùng một chế độ xem (.html), tôi đã thêm sự kiện ng-click nút giả. Sau khi gọi thành công ajax, tôi nhấp vào nút và khung nhìn được tải vì sử dụng dữ liệu từ biến localStorage.

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

Tôi không hiểu tại sao dữ liệu không ràng buộc để xem trong phương pháp thành công. Liệu phạm vi $ time out sau một thời gian nếu máy chủ mất quá nhiều thời gian để trả lời?

Cảm ơn trước.

+0

Bạn có thể hiển thị nhiều hơn mã của bạn? Tôi cảm thấy bạn đã bỏ lỡ quá trình tiêu hóa $ tại đây – maurycy

Trả lời

1

Nếu bạn thay đổi mô hình bên trong cuộc gọi ajax thì bạn cần phải thông báo cho js góc mà bạn có một số thay đổi.

$ scope. $ Apply(); sau khi dòng dưới đây sẽ khắc phục sự cố của bạn. Dòng này sẽ cập nhật phạm vi.

$ scope.dataVal = response;

Cảm ơn,

Santyy

+0

Sema da @Santyy. Ana mã la oru dòng um ae puriyala :) –

Các vấn đề liên quan