0

私はドロップダウンメニューでデータを選択してリストデータを試しています。AngularJSのドロップダウンでパラメータを渡す

ハードコード(ID 6)のサービスリストデータ。

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

サービスに選択アイテムIDを渡すにはどうすればよいですか?

Dropdown

ドロップダウンHTML(NG-クリックdoesntの仕事を):

  <!-- 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'としてサービスするつもりです。なぜなら、ページをロードするときには何も選択しないからです。しかし、ng-clickでは何も起こりません。何か不足していますか? –

+0

私はコントローラの名前を変更し、それを忘れました。ありがとう! –

+0

ちょうど観測、リスト(ドロップダウンの下のタブ)は更新されていないので、ユーザーがドロップダウンのオプションを変更したときにタブを再ロードする方法を検索します。 –

関連する問題