2015-02-18 2 views
0


я успешно создал зависимое выпадающее меню с использованием angularjs, но у меня есть небольшая проблема:
мне нужно определить значение каждой опцию тега, поскольку она устанавливается автоматически угловом процессором.
вот мой HTML код:
angularjs зависит выпадающего значение опции

  <div ng-controller="CountryCntrl"> 

       <select id="country" ng-model="states" ng-options="country for (country, states) in countries"> 
        <option value=''>Choose</option> 
       </select> 

       Departement: 
       <select id="state" ng-disabled="!states"> 
       <option value="">Choose</option> 
       <option ng-repeat="state in states" value="{{state.id}}">{{state.dep}}</option> 
       </select> 
      </div> 

      <br/> 
      <input type="submit" value="go"> 


и вот мой angularjs код:

<script> 
    var Aplic = angular.module("Aplic", []); 

    Aplic.controller('CountryCntrl', function($scope){ 

     $scope.countries = { 
         'Aquitaine': [ {'id':'22', 'dep': "Dordogne"}, { 'id':'31', 'dep' : "Gironde"} ], 
         'Auvergne': [ {'id' : '3', 'dep' : "Allier"}, {'id' : '15', 'dep' : "Cantal"} ] 
         };    
    }); 

    </script> 


Повторяю, я успешно установить значение для во втором раскрывающемся списке, но для первого он автоматически берет имя страны переменной.

так как я должен изменить свой код, чтобы дать каждому тегу параметра в первом раскрывающемся списке определенное значение.

Чтобы хорошо понять мою идею, пожалуйста, проверьте значения в каждом выпадающем списке. вот мой рабочий отрывок на плункер:
http://embed.plnkr.co/VBdxGDQNOJSHeGVfloo2/preview
любая помощь будет оценена.


вот что я хочу сделать:

<select id="state" ng-model="cou"> 
         <option value="">Choisir</option> 
         <option ng-repeat="cou in countries" value="{{cou.id}}">{{cou.name}}</option> 
        </select> 

        <select id="state" ng-disabled="!cou"> 
         <option value="">Choisir</option> 
         <option ng-repeat="state in cou.states" value="{{state.id}}">{{state.dep}}</option> 
        </select> 

но теперь второй выпадающий не работает, если вы можете мкВт, что problemwill быть решена

+0

Вы смотрите на создание уникального значения/код для списка стран? Если это так, вам потребуется немного изменить структуру данных – Karthik

+0

Да, мне нужно настроить уникальное значение/код для списка стран (как это делается во втором раскрывающемся списке), и, конечно же, необходимо изменить структуру данных – PyReda

+0

Зачем вам это нужно? Каждый объект, связанный с опцией, является уникальным объектом. Если вы используете ng-model, он будет содержать конкретный объект, который был выбран в выборе. Вам не нужно указывать какое-либо конкретное значение в атрибуте «значение» этого параметра. – jw56578

ответ

3

Вот пример реализации для вы. Это будет поддерживать значения в теге опций.

<div ng-app="Aplic" ng-controller="CountryCntrl"> 
    <select id="country" ng-model="selectedCountry" ng-options="country.id as country.name for country in countries track by country.id"> 
     <option value="">Choose</option> 
    </select>Departement: 
    <select id="state" 
    ng-model="selectedState" 
    ng-disabled="!selectedCountry" 
    ng-options="state.id as state.dep for state in ((countries | filter:{'id':selectedCountry})[0].states) track by state.id"> 
     <option value="">Choose</option> 
    </select> 


    <div>selectedCountry id: {{selectedCountry}}</div> 
    <div>selectedState id: {{selectedState}}</div> 
</div> 

Контроллер:

$scope.countries =[ 
    { 
    'id': '1', 
     'name': "Aquitaine", 
     'states': [{ 
     'id': '22', 
     'dep': "Dordogne" 
    }, { 
     'id': '31', 
     'dep': "Gironde" 
    }] 
    }, 
    { 
    'id': '2', 
     'name': "Auvergne", 
     'states': [{ 
     'id': '3', 
     'dep': "Allier" 
    }, { 
     'id': '15', 
     'dep': "Cantal" 
    }] 
    }]; 

Working demo

+0

Вы изменились хорошо структуру, но эти идентификаторы должны быть помещены в атрибут value каждого тега параметра. если вы используете хром, проверьте этот элемент выпадающего списка и посмотрите – PyReda

+0

, вы поняли мою идею, или я должен объяснить больше? – PyReda

+0

Итак, вы хотите установить значения без изменения структуры?Я все равно не понимаю, почему вы хотите установить значения в каждом теге параметра, когда вы можете получить весь выделенный объект при выборе. – Karthik

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

  • Нет связанных вопросов^_^