2016-06-22 3 views
0

Ниже приведен код, который работает нормально, единственная проблема, с которой я сталкиваюсь, заключается в том, что второе значение параметра в первый раз (до тех пор пока оно не выбрано) будет пустым. Мне известно, что я здесь делаю неправильно.Получение пустой опции во втором выборе зависит от опции первого выбора - AngularJS

код -

<div> 
    <h3>Select a country</h3> 
    <select id="select-02" 
      class="slds-select" 
      name="country" 
      ng-model="myForm.companyaddress.country" 
      ng-options="conList.name for conList in countryList track by conList.id" 
      ng-init="myForm.companyaddress.country = countryList[0]" 
      ng-change="stateList = myForm.companyaddress.country.states" 
      style="height: 37px;"> 
    </select> 
</div> 

<div> 
    <h3>Select a state</h3> 
    <select 
     id="select-03" 
     class="slds-select" 
     style="height: 44px;" 
     ng-init="myForm.companyaddress.state = countryList[0].states[0]" 
     ng-options="sList.name for sList in stateList track by sList.stateid" 
     ng-model="myForm.companyaddress.state"> 
    </select> 
</div> 

Script -

var myApp = angular.module('myApp', []); 

    myApp.controller('mainCtrl', function($scope){ 

     $scope.countryList = [ 
      { 
       id: null, 
       name: 'Please Select', 
       states: [ 
        {name: 'Please Select', stateid: null} 
       ] 
      }, 
      { 
       id: 1, 
       name: 'United States of America', 
       states: [ 
       {name: 'Alabama', stateid: 1}, 
       {name: 'Alaska', stateid: 2}, 
       {name: 'Arizona', stateid: 3} 
       ] 
      }, 
      { 
       id: 2, 
       name: 'Australia', 
       states: [ 
       {name: 'Australian Capital Territory', stateid: 1}, 
       {name: 'New South Wales', stateid: 2}, 
       {name: 'Northern Territory', stateid: 3} 
       ] 
      }, 
     ]; 

     $scope.stateList = $scope.countryList[0].states; 
    }) 

Рабочая Plnkr - http://plnkr.co/edit/ZYmMJG8CbxrpdOjuUh9k?p=preview

ответ

1

Проблема, которую я вижу до сих пор является то, что, как только вы выбрали страну, в Myform. В списке параметров нет параметра companyaddress.state, поэтому он пустой

Вы можете изменить свои первые нг-изменения для этого

ng-change="stateList = myForm.companyaddress.country.states; myForm.companyaddress.state = stateList[0]" 

Проверить эту plnkr

http://plnkr.co/edit/ZYmMJG8CbxrpdOjuUh9k

Смежные вопросы