2014-02-05 86 views
0

我有問題關於使用Angular.js與Ajax從SQL Server數據庫檢索數據。asp.net web窗體+ sql服務器與angular.js和ajax(檢索數據)

這裏是我的代碼:

Employee.aspx:

<div ng-controller="EmpCtrl" ng-init="getEmployee()"> 
    <table border="1" style="text-align: center; margin-left: 410px;" >   
     <tr ng-repeat="item in items" > 
     <td> 
       {{item._empID}} 
      </td> 
      <td> 
       {{item._firstname}} 
      </td> 
      <td> 
       {{item._lastname}} 
      </td> 
      <td> 
       {{item._address}} 
      </td> 
      <td> 
       {{item._city}} 
      </td> 
      <td> 
       {{item._pincode}} 
      </td> 
      <td> 
       {{item._state}} 
      </td> 
      <td> 
       {{item._country}} 
      </td> 
     </tr> 
    </table> 

的script.js:

demoApp = angular.module('demoApp', []); 
demoApp.controller('EmpCtrl', function ($scope) { 
    $scope.getEmployee = function() { 
     var _employee = []; 
     $.ajax({ 
      type: "POST", 
      url: "WebService.asmx/GetEmployeeDetails", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (response) { 
       _employee = response.d; 
       $scope.items=_employee; 
       console.log($scope.items); 
      } 

     }); 

    } 
}); 

瓦每當我運行該項目我在控制檯日誌上獲取數據但問題是它不顯示在表上,只有當我點擊/點擊按鈕時,有控制檯日誌上的第一個數據將顯示,但數據控制檯登錄將變成2.當再次點擊該按鈕時,現在將顯示第二條記錄,並且控制檯日誌上的數據將變爲3.

如何在頁面加載後顯示數據沒有點擊按鈕?

Plaese幫助我...在此先感謝!

回答

2

第一個問題:你正在使用angular和jQuery做reuqest。如何解決這個問題:

的$ insted的阿賈克斯,你應該使用$ http.post甚至更好$ http.get - 因爲你只檢索數據:

$http.get('WebService.asmx/GetEmployeeDetails').then(function(result){ 
    $scope.items = result.data; 
}) 

爲什麼你的代碼不能正常工作? ajax結果來自角度摘要循環。所以你會在下一個摘要循環運行之前看到結果。在你的例子中,如果你點擊按鈕,就是這種情況。

,如果你把你的代碼在$應用模塊,您可以手動運行摘要循環:

$scope.$apply(function(){ 
    $scope.items=_employee; 
}); 

但這個如果你正在使用$ HTTP服務是沒有必要的。

+0

謝謝Michael!第一個數據顯示在頁面加載後,當我使用這個代碼:$ apply,非常感謝你..! – user3274033

+0

@ user3274033是的,但我希望你會使用角度的方式:) – michael

+0

$ http.get不起作用。它甚至不返回數據。我不知道爲什麼,也許我不知道如何使用它。你能幫我或教我如何使用這種技術?請... – user3274033

相關問題