[英]How to use dynamic variable into angular
我有一個要輸入的表單,根據該表單創建了多個輸入框。 為此,下面給出了javascript代碼。
for(i = 1; i <= c; i++) { //c = total input count
block = block + '<div class="row">'+
'<div class="form-group col-lg-12">'+
'<input id="name" ng-model="new.var'+i+'name" type="text" class="form-control">'+
'<input id="type" ng-model="new.var'+i+'type" type="text" class="form-control">'+
'</div>'+
'</div>';
}
document.getElementById("vars").innerHTML = block;
上面的代碼工作正常,並且ng-model正在動態生成,例如new.var1name , new.var1type , new.var2name , new.var2type
等。
但是如何在我的控制器中獲取這些變量? 如果我像下面那樣在控制器中生成這些變量,則其給出錯誤,即找不到“名稱”。
var var1 = [];
for(i = 1; i <= c; i++) { //c = total input count
var item = {};
console.log('var'+i+'name', 'var'+i+'unit');
item['name'] = $scope.new.var+i+name;
item['type'] = $scope.new.var+i+type;
var1.push(item);
}
console.log(JSON.stringify(var1));
所以我用下面的方式,但是現在沒有錯誤,但是var1為空。
var var1 = [];
for(i = 1; i <= c; i++) {
var item = {};
console.log('var'+i+'name', 'var'+i+'type');
item['name'] = $scope.new['var'+i+'name'];
item['type'] = $scope.new['var'+i+'type'];
var1.push(item);
}
console.log(JSON.stringify(var1));
請任何人幫助我找出我在做錯什么,或者有可能做嗎???
我建議不要在控制器中生成html,而應在視圖中編寫該html,並使用angular的ng-repeat指令重復它: https : //docs.angularjs.org/api/ng/directive/ngRepeat 。 像這樣的東西(未經測試):
<div ng-repeat="item in c track by $index">
<input id="name" ng-model="name[$index]" type="text" class="form-control">
<input id="type" ng-model="type[$index]" type="text" class="form-control">
</div>
然后,您應該能夠從控制器中的$ scope訪問名稱和類型數組。 如果“ c”是原始輸入的ng模型(定義重復的次數),那么如果這是所需的功能,則應該動態添加新字段。
EDITED
在您的控制器中
$scope.c = 5;
$scope.getNumber = function(num) {
return new Array(num);
}
在你看來
<div ng-repeat="i in getNumber(c) track by $index">
<input id="name" ng-model="name[$index]" type="text" class="form-control">
<input id="type" ng-model="type[$index]" type="text" class="form-control">
</div>
使用$scope['new.var'+i+'name']
有兩種方法可以訪問JavaScript中的對象屬性:
$scope.new.var1name
$scope['new.var'+i+'name']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.