ng-repeat 变量到 ng-model
ng-repeat variables to ng-model
我的html:
{%verbatim%}
<tr ng-repeat="rank in sev_ranks">
<td>
{{rank.id}}
</td>
<td>
<div class="col-md-12" style="height:100px">
{{rank.siverity}}<br>
<textarea ng-model="rank.ngmodel" class="form-control"></textarea>
</div>
</td>
<td>
<div class="col-md-12" style="height:100px">
{{rank.criteria}}<br>
<textarea class="form-control">{{rank.criteria}}</textarea>
</div>
</td>
</tr>
{%endverbatim%}
Angular 脚本:
$scope.sev_ranks = [{
id: 1,
siverity: 'A',
criteria: 'D',
ngmodel: 'stxtarea1'
}, {
id: 2,
siverity: 'B',
criteria: 'E',
ngmodel: 'stxtarea2'
}, {
id: 3,
siverity: 'C',
criteria: 'F',
ngmodel: 'stxtarea3'
}];
$scope.stxtarea1 = 'A';
$scope.stxtarea2 = 'B';
$scope.stxtarea3 = 'C';
我想实际动态更改 ng-model 的值。例如:ng-model = "stxtarea1"。但是根据代码,我只能得到 ng-model="rank.ngmodel",而不是改变值。我能为此做什么?我也将 mng-model 值放在“{{}}”中。但是没有用。可以帮我吗?提前致谢。
当我添加 ng-model="{{rank.ngmodel}}"
时,我收到 angular 错误 Syntax Error: Token 'rank.ngmodel' is unexpected, expecting [:] at column 3 of the expression [{{rank.ngmodel}}] starting at [rank.ngmodel}}].
根据我的想法,您需要更改 angular 脚本,如下所示:
$scope.sev_ranks = [{
id: 1,
siverity: 'A',
criteria: 'D',
ngmodel: $scope.stxtarea1
}, {
id: 2,
siverity: 'B',
criteria: 'E',
ngmodel: $scope.stxtarea2
}, {
id: 3,
siverity: 'C',
criteria: 'F',
ngmodel: $scope.stxtarea3
}];
$scope.stxtarea1 = 'A';
$scope.stxtarea2 = 'B';
$scope.stxtarea3 = 'C';
你正在写 'stxtarea1'
- 所以它被认为是一个字符串。所以你需要把它写成 $scope.stxtarea1
.
检查代码,它符合您的逻辑。
angular.module('myApp', [])
.controller('myCtrl',function($scope) {
$scope.stxtarea1 = 'A';
$scope.stxtarea2 = 'B';
$scope.stxtarea3 = 'C';
$scope.sev_ranks = [{
id: 1,
siverity: 'A',
criteria: 'D',
ngmodel: $scope.stxtarea1
}, {
id: 2,
siverity: 'B',
criteria: 'E',
ngmodel: $scope.stxtarea2
}, {
id: 3,
siverity: 'C',
criteria: 'F',
ngmodel: $scope.stxtarea3
}];
});
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</head>
<body ng-controller="myCtrl">
<table>
<tr ng-repeat="rank in sev_ranks">
<td>
{{rank.id}}
</td>
<td>
<div class="col-md-12" style="height:100px">
{{rank.siverity}}
<br>
<textarea ng-model="rank.ngmodel" class="form-control"></textarea>
</div>
</td>
<td>
<div class="col-md-12" style="height:100px">
{{rank.criteria}}
<br>
<textarea class="form-control">{{rank.criteria}}</textarea>
</div>
</td>
</tr>
</table>
</body>
</html>
我的html:
{%verbatim%}
<tr ng-repeat="rank in sev_ranks">
<td>
{{rank.id}}
</td>
<td>
<div class="col-md-12" style="height:100px">
{{rank.siverity}}<br>
<textarea ng-model="rank.ngmodel" class="form-control"></textarea>
</div>
</td>
<td>
<div class="col-md-12" style="height:100px">
{{rank.criteria}}<br>
<textarea class="form-control">{{rank.criteria}}</textarea>
</div>
</td>
</tr>
{%endverbatim%}
Angular 脚本:
$scope.sev_ranks = [{
id: 1,
siverity: 'A',
criteria: 'D',
ngmodel: 'stxtarea1'
}, {
id: 2,
siverity: 'B',
criteria: 'E',
ngmodel: 'stxtarea2'
}, {
id: 3,
siverity: 'C',
criteria: 'F',
ngmodel: 'stxtarea3'
}];
$scope.stxtarea1 = 'A';
$scope.stxtarea2 = 'B';
$scope.stxtarea3 = 'C';
我想实际动态更改 ng-model 的值。例如:ng-model = "stxtarea1"。但是根据代码,我只能得到 ng-model="rank.ngmodel",而不是改变值。我能为此做什么?我也将 mng-model 值放在“{{}}”中。但是没有用。可以帮我吗?提前致谢。
当我添加 ng-model="{{rank.ngmodel}}"
时,我收到 angular 错误 Syntax Error: Token 'rank.ngmodel' is unexpected, expecting [:] at column 3 of the expression [{{rank.ngmodel}}] starting at [rank.ngmodel}}].
根据我的想法,您需要更改 angular 脚本,如下所示:
$scope.sev_ranks = [{
id: 1,
siverity: 'A',
criteria: 'D',
ngmodel: $scope.stxtarea1
}, {
id: 2,
siverity: 'B',
criteria: 'E',
ngmodel: $scope.stxtarea2
}, {
id: 3,
siverity: 'C',
criteria: 'F',
ngmodel: $scope.stxtarea3
}];
$scope.stxtarea1 = 'A';
$scope.stxtarea2 = 'B';
$scope.stxtarea3 = 'C';
你正在写 'stxtarea1'
- 所以它被认为是一个字符串。所以你需要把它写成 $scope.stxtarea1
.
检查代码,它符合您的逻辑。
angular.module('myApp', [])
.controller('myCtrl',function($scope) {
$scope.stxtarea1 = 'A';
$scope.stxtarea2 = 'B';
$scope.stxtarea3 = 'C';
$scope.sev_ranks = [{
id: 1,
siverity: 'A',
criteria: 'D',
ngmodel: $scope.stxtarea1
}, {
id: 2,
siverity: 'B',
criteria: 'E',
ngmodel: $scope.stxtarea2
}, {
id: 3,
siverity: 'C',
criteria: 'F',
ngmodel: $scope.stxtarea3
}];
});
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</head>
<body ng-controller="myCtrl">
<table>
<tr ng-repeat="rank in sev_ranks">
<td>
{{rank.id}}
</td>
<td>
<div class="col-md-12" style="height:100px">
{{rank.siverity}}
<br>
<textarea ng-model="rank.ngmodel" class="form-control"></textarea>
</div>
</td>
<td>
<div class="col-md-12" style="height:100px">
{{rank.criteria}}
<br>
<textarea class="form-control">{{rank.criteria}}</textarea>
</div>
</td>
</tr>
</table>
</body>
</html>