[英]Create dynamic names for ng-model in AngularJS
問題-
ng-model
不是動態創建的。 我的輸入框是動態創建的,我正在嘗試創建ng-model
動態的,例如test[1]
, test[2]
等,但是當我test[shiftnumber]
表單時,我得到的只是-所有輸入元素的test[shiftnumber]
。
HTML代碼 -
<body ng-controller="myCtrl">
<select id="shiftnumbers"
ng-model="event.shiftnumber"
ng-change="addShiftNumber(event.shiftnumber)"
ng-options="timeslot.value as timeslot.name for timeslot in shiftnumbers"
ng-init="event.shiftnumber = shiftnumbers[0].value"
class="btn">
</select>
<div ng-repeat="shiftnumber in selectedShiftnumbers">
<input type="text" name="test{{shiftnumber}}" ng-model="test[shiftnumber]" /> {{shiftnumber + 1}}
</div>
</body>
腳本代碼-
var myApp = angular.module("myApp", []);
myApp.controller("myCtrl", function($scope){
$scope.shiftnumbers = [];
for(var i=0; i< 23; i++) {
$scope.shiftnumbers.push({name: i, value: i});
}
$scope.addShiftNumber = function(num){
$scope.selectedShiftnumbers = [];
for(var i=0; i< num; i++) {
$scope.selectedShiftnumbers.push(i);
}
}
});
PLNKR- http: //plnkr.co/edit/PL9sVAKn5UsZECPsOvnk?p=preview
因為您尚未定義$scope.test[0]
, $scope.test[1]
(您正在使用ng-model="test[shiftnumber]"
,所以應該有$scope.test[shiftnumber]
) 。
嘗試
$scope.addShiftNumber = function(num){
$scope.test = [];
$scope.selectedShiftnumbers = [];
for(var i=0; i< num; i++) {
$scope.selectedShiftnumbers.push(i);
$scope.test.push('');
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.