2016-04-19 32 views
0

我有兩個下拉菜單,當我選擇第一個下拉菜單時,我的第二個下拉菜單應該根據選擇進行加載。我正在做角js。二手手錶事件加載下拉事件下拉不會刷新角js

angular.module('myApp', ['']).controller('QMesaures', function ($scope) { 

$scope.$watch('ddlDepartment', function (newVal) { 
      var DepartmentName = newVal.DepartmentName 

     $.ajax({ 
       type: "POST", 
       data: JSON.stringify({ DepartmentName: DepartmentName }), 
       url: "/QReport/GetProviders", 
       contentType: "application/json; charset=utf-8", 
       success: function (data) { 
        alert(data); 
        $scope.$apply(function() { 
         $scope.Providers = data; 

        }); 


       } 
      }); 

     }); 

}); 



<div ng-app="myApp" ng-controller="QMesaures"> 
<select ng-model="ddlProviders" ng-options="provider.ProviderName for provider in Providers"></select> 
</div> 

但我的問題是,我得到的數據,我可以看到警告框,但我的第二個下拉(提供下拉)犯規示值。

請幫助我如何刷新下拉列表以顯示角度js中的值。

+2

不應該使用'$ http'服務或像Restangular一樣做'http'請求。一旦數據從端點獲得,這將自動啓動摘要循環。 PS-您可能需要刪除依賴關係jQuery才能正確學習角度,以便您可以以有角度的方式進行思考。 –

+0

Evans Dianga我嘗試使用$ http我能夠獲得數據,但無法加載到下拉菜單。代碼改變$ http.get('/ QardReport/GetProviders?DepartmentName = PEDIATRICS')。成功(功能(數據){scopel.Providers = data }); – user1125803

回答

0

就我所知,您有一個觀察器,該觀察器不存在於此範圍內。 $ scope.ddlDepartment從您顯示的代碼中未定義。

0

您的問題可能是,當您重新分配$ scope.Providers時,您會失去對「Providers」引用的跟蹤。試試這個:

    $scope.$apply(function() { 
         angular.copy(data, $scope.Providers); 
        });