2016-10-17 3 views
1

を働いていない私は、特定を選択した場合、私はngの変更は、私は2つのドロップダウンリストを持っているWebアプリケーションを作成していangularjs

<tr> 
    <td> 
     state 
    </td> 
    <td> 
     <select ng-change="gcity()" ng-init="state = 'state'" ng-model="state"> 
      <option ng-repeat="o in statefunc" value="state">{{o.state}}</option> 
     </select> 
    </td> 
</tr> 
<tr> 
    <td> 
     City 
    </td> 
    <td> 
     <select ng-init="city = 'select'" ng-model="city"> 
      <option ng-repeat="o in city" value="city">{{o.city}}</option> 
     </select> 
    </td> 
</tr> 

のDropDownList 1変化にドロップダウンリスト2のデータを変更したい、これは私のドロップダウンです状態は、市は私の状態ごとに

として移入する必要がありますが、それは動作していないとさえコンソール内の任意のデータを示していない、

それから私は、NG-クリック

<tr> 
    <td> 
     state 
    </td> 
    <td> 
     <select ng-click="gcity()" ng-init="state='state'" ng-model="state"> 
      <option ng-repeat="o in statefunc" value="state">{{o.state}}</option> 
     </select> 
    </td> 
</tr> 
<tr> 
    <td> 
     City 
    </td> 
    <td> 
     <select ng-init="city='select'" ng-model="city"> 
      <option ng-repeat="o in city" value="city">{{o.city}}</option> 
     </select> 
    </td> 
</tr> 
01を試してみました

ng-clickはうまく動作しますが、動作していないng-changeを使用したいと思いますか?

答えて

1

次のように別のjson配列を使用することをお勧めします。相違点は、状態は状態オブジェクトの配列であり、状態キーと値キーのペアではありません。 状態が選択されると、ng-modelは名前と都市を持つ状態オブジェクトです。あなたは提出中に行うことができる都市リストではなく州名のみを提出することができます。 これを選択すると、ngOptions selectの配列オプションを使用して選択されます。

JS

var app = angular.module('plunker', []); 
app.controller('MainCtrl', function($scope) { 
    $scope.name = 'World'; 
    $scope.data = { 
     "states": [{ 
      "name": "Maharashtra", 
      "cities": ["Pune", "Mumbai", "Nagpur"] 
     }, { 
      "name": "Gujarat", 
      "cities": ["Surat", "Ahmedabad", "Baroda"] 
     }, { 
      "name": "Rajasthan", 
      "cities": ["Jaipur", "Ajmer", "Jodhpur"] 
     }] 
    } 
}); 

HTML

<head> 
    <meta charset="utf-8" /> 
    <title>AngularJS Plunker</title> 
    <script> 
     document.write('<base href="' + document.location + '" />'); 
    </script> 
    <link rel="stylesheet" href="style.css" /> 
    <script data-require="[email protected]" src="https://code.angularjs.org/1.4.12/angular.js" data-semver="1.4.9"></script> 
    <script src="app.js"></script> 
</head> 

<body ng-controller="MainCtrl"> 
    <table> 
     <tr> 
      <td> 
       state 
      </td> 
      <td> 
       <select ng-model="state" ng-options="state.name for state in data.states"> 
      <option value=''>Select</option> 
      </select> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       City 
      </td> 
      <td> 
       <select ng-disabled="!state" ng-model="city" ng-options="city for city in state.cities"> 
      <option value=''>Select</option> 
     </select> 
      </td> 
     </tr> 
    </table> 
</body> 

</html> 

Plunkr:http://plnkr.co/edit/mtMdbUveeJKMRqmpvHyI?p=preview

0

optionの代わりにng-optionを使用してください。以下の例をご覧ください。

<select ng-init="state='state'" ng-options='o.state for o in statefunc' 
ng-change="gcity()" ng-model="state"> 
</select> 
+0

先生が、それでも私はcomname –

+0

sorrを得るカント私は都市名を取得していません –

0

これを今試してみると、デモが用意されています。

function CountryController($scope) { 
 
    $scope.countries = { 
 
    'india': { 
 
     'india city 1': [], 
 
     'india city 2': [], 
 
     'india city 3': [], 
 
     'india city 4': [], 
 
    }, 
 
    'Us': { 
 
     'Us city 1': [], 
 
     'Us city 2': [], 
 
     'Us city 3': [], 
 
     'Us city 4': [] 
 
    }, 
 
    'Australia': { 
 
     'Australia city 1': [], 
 
     'Australia city 2': [], 
 
     'Australia city 3': [], 
 
     'Australia city 4': [] 
 
    } 
 
    }; 
 
}
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script> 
 
<div ng-app="" class="container"> 
 
    <div ng-controller="CountryController"> 
 
    <div class="form-group"> 
 
     <label class="control-label" for="Country">Estado:</label> 
 
     <select class="form-control input-lg" id="country" ng-model="states" ng-options="country for (country, states) in countries"> 
 
     <option value=''>Select</option> 
 
     </select> 
 
    </div> 
 
    <br> 
 
    <div class="form-group"> 
 
     <label class="control-label" for="States">Municípios:</label> 
 
     <select class="form-control input-lg" id="state" ng-disabled="!states" ng-model="cities" ng-options="state for (state,city) in states"> 
 
     <option value=''>Select</option> 
 
     </select> 
 
    </div> 
 
    </div> 
 
</div>

+0

しかし、都市を取得していません –

+0

@APIコントロール:現在の選択状態IDを渡すことによって、関数updateCity()という都市変数を再初期化する必要があります: – Jigar7521

+0

申し訳ありませんが、私は非常にですanglejsの新しい私を助けてください私を許してください –

関連する問題