让我说我有一个下拉淹没列表,我在我的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-model中检索出城市?
我知道自己做错了什么,但是因为我是一个有角色的新人,我试过!!
谢谢
答案 0 :(得分:0)
假设密钥(城市)在您的数据阵列中,您可以这样做:
<div ng-repeat="data in datas">
<input type="text">{{data.name}}
</div>
答案 1 :(得分: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>