2015-09-21 114 views
0

比方說,我有一個下降淹死名單,我在我的HTML模板動態地添加:角度:通過複式值控制器

<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"和我檢索所有在我的輸入框中添加的城市。但是我怎麼能從我的控制器中的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輸入中所期望的那樣,將「加起來」的值添加到房產城市。

如果您正在使用的對象datasng-repeat,它是一種你<input />將綁定到的datas一個項目屬性常見的做法。

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

爲了更好地理解我的需求,我更新了第一個問題。謝謝 – user708683

+0

保持添加新城市。使用ng-repeat僅顯示所選城市的集合。 – ThiagoPXP