2015-09-21 2 views
0

Допустим у меня есть список утопить капли, что я добавить динамически в моем шаблоне HTML:Угловой: передать mutliple значения в контроллер

<button type="button" ng-click="addRow()" style="margin-bottom:5px;">Add cities </button> 
    <div ng-repeat="city in cities"> 
    <select ng-model="cities_$index" 
      ng-options="n.id as n.name for n in citiesList" 
      class="form-control" 
     ng-required="true"> 
    <option value="">-- Choose City --</option> 
           </select> 
    </div> 

Угловое контроллер:

$scope.addRow = function() { 
var newrow = []; 
if ($scope.cities.length === 0) { 

       newrow.push({ 'cities': $scope.cities_0 }); 
      } 
      else { 
       $scope.cities.forEach(function (row, key) { 

        var city= '$scope.cities_'+key; // in php i can do this 
//but i dont know how to do it with Js/Angular 

        console.log('row' + city); 

        newrow.push({ 'cities': city}); 

        console.log(newrow); 
       }); 
      } 
$scope.cities.push(newrow); 
} 

Я попытался это, чтобы получить значения из выбранных городов, но у меня есть неопределенные значения.

$scope.send = function() { 

      angular.forEach($scope.cities, function (value, key) { 

       console.log(value.id); // the id from the ng-options 
     }; 

В обычном HTML код я просто добавить name="city" и я получить все города, добавленные в моем поле ввода. Но как я могу получить thoses города от ng-модели в моем контроллере?

Я знаю, что я делаю что-то неправильно, но так как я новый с угловым, я пытаюсь!

Спасибо

+0

разве это не просто «данные» в вашем случае, которые будут содержать массив? – Steve

+0

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

+0

Я обновил свой первый вопрос, и я добавил код контроллера для лучшего понимания моей потребности. – user708683

ответ

0

полагая, что ключ (город) находится внутри массива DATAS, вы можете сделать:

<div ng-repeat="data in datas"> 
<input type="text">{{data.name}} 
</div> 
+0

Я обновил свой первый вопрос для лучшего понимания моей потребности. Спасибо – user708683

0

ng-model еще уникален. Здесь вам не хватает то, что ng-repeat создает дочернюю область для каждого элемента. Следовательно, значение ng-model уникально для каждого дочернего объекта. ng-model не ведет себя так же, как обычный ввод HTML и имеющий несколько входов с тем же ng-model, будет указывать только на один и тот же объект в памяти. И нет, «добавить» значения в город свойств, как вы ожидали бы в простых вложениях HTML.

Если вы используете объект datas в вашем ng-repeat, это своего рода обычная практика, что ваш <input /> бы привязать к свойству элемента из datas.

<div ng-repeat="data in datas"> 
    <input type="text">{{data.city}} 
</div> 
+0

Я обновил свой первый вопрос для лучшего понимания моей потребности. Спасибо – user708683

+0

Держите свой , чтобы добавить новые города. Используйте ng-repeat только для отображения коллекции выбранных городов. – ThiagoPXP

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