0

드롭 다운 메뉴에서 데이터를 선택하여 목록 데이터를 표시하려고합니다.AngularJS의 드롭 다운 메뉴에서 매개 변수 전달

내 서비스 목록 데이터에 하드 코드 (ID 6)가 있습니다.

var url = 'http://localhost:3854/listarServicosByEstab/' + '6'; // Hardcode! 

어떻게 서비스에 선택 항목 ID를 전달합니까?

Dropdown

드롭 다운 HTML (NG-클릭 나던 일) :

  <!-- Combobox -->    
     <div class="row"> 
      <div class="dropdown" ng-controller="EstabelecimentosPageCtrl"> 
       <button class="btn btn-default dropdown-toggle" type="button" id="dropdown_estabelecimentos" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> 
        Estabelecimentos 
        <span class="caret"></span> 
       </button> 
       <ul class="dropdown-menu" aria-labelledby="dropdown_estabelecimentos" > 
        <li> 
         <a ng-repeat="estab in listaDeEstabelecimentos" href="#" ng-click="$parent.current = item"> 
          {{estab.nomeEstab}} 
         </a> 
        </li> 
       </ul> 
       Choose Test: {{item}} 
      </div> 
     </div> 

메뉴 컨트롤러 :

.controller('ListServicoCtrl', function($scope, $state, ListServicoService) { 
ListServicoService.listarServicos().then(function(dados){ 
    $scope.listaDeServicos = dados; 
}); }); 

서비스 :

.service('ListServicoService', function($http){ 

var url = 'http://localhost:3854/listarServicosByEstab/' + '6'; // Hardcode! 

return{ 
    listarServicos : function(){ 
     return $http.get(url).then(function(response){ 
      return response.data; 
     }); 
    } 
}}); 
+0

ng-click = "$ parent.current = item"'여기'item '은 무엇입니까? – Venugopal

+0

선택한 항목을 var로 설정할 수 있는지 확인하는 테스트였습니다. –

답변

2
<div class="row"> 
      <div class="dropdown" ng-controller="EstabelecimentosPageCtrl"> 
       <button class="btn btn-default dropdown-toggle" type="button" id="dropdown_estabelecimentos" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> 
        Estabelecimentos 
        <span class="caret"></span> 
       </button> 
       <ul class="dropdown-menu" aria-labelledby="dropdown_estabelecimentos" > 
        <li> 
         <a ng-repeat="estab in listaDeEstabelecimentos" ng-click="passdata(estab.Id)"> 
          {{estab.nomeEstab}} 
         </a> 
        </li> 
       </ul> 
       Choose Test: {{item}} 
      </div> 
     </div> 

컨트롤러

.controller('ListServicoCtrl', function($scope, $state, ListServicoService) { 

$scope.passdata = function(id){ 
ListServicoService.listarServicos(id).then(function(dados){ 
    $scope.listaDeServicos = dados; 
}); 
} }); 

귀하의 서비스

.service('ListServicoService', function($http){ 



return{ 
    listarServicos : function (id){ 
     return $http.get('http://localhost:3854/listarServicosByEstab/' + id).then(function(response){ 
      return response.data; 
     }); 
    } 
}}); 

제거 앵커 태그에서 HREF 내가 컨트롤러에 보여 같은 기능을합니다. 당신의 json이 Id과 같은 값을 가지고 있다고 가정함으로써 나는 그것을 증명했다. 희망이 코드는 당신을 위해 작동합니다.

+0

거의 모하메드! id var은 페이지를로드 할 때 어떤 옵션도 선택하지 않기 때문에 'undefined'로 서비스 할 것입니다. 하지만 아무런 조치가 없으면 아무것도 누락 되었습니까? –

+0

알았습니다! 컨트롤러 이름을 변경하고 잊어 버렸습니다. -_- 솔루션이 작동합니다. 감사! –

+0

그냥 관측, 목록 (드롭 다운 아래 탭에) 업데이 트되지 않습니다, 나는 사용자가 드롭 다운에서 옵션을 변경할 때 탭을 다시로드하는 방법을 검색합니다. –