AngularJS : 模型中的变量
AngularJS : Variables in ng-model
我有一个循环 ng-repeat
<div ng-repeat="data in datas">
Name: {{data.name}} <input type="text" ng-model="age">
</div>
我希望 $scope.age
成为 $scope.age_data.name
。例如:$scope.age_Tan、$scope.age_Jim...
所以我试过 ng-model="age_{{data.name}}"
但它出错了。
如何解决?
您在此处显示的内容不会完全起作用这里有几个选项
angular.module('myApp', [])
.controller('MyCtrl', function() {
var vm = this;
vm.datas = [{
name: 'thing1'
}, {
name: 'thing2'
}, {
name: 'thing3'
}];
})
<html ng-app="myApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
</head>
<body ng-controller="MyCtrl as myCtrl">
Option 1
<div ng-repeat="data in myCtrl.datas">
<input type="text" ng-model="data.age" />
</div>
<br/>
<br/>Option 2
<div ng-repeat="data in myCtrl.datas">
<input type="text" ng-model="myCtrl.age[data.name]" />
</div>
<pre>{{myCtrl|json}}</pre>
</body>
</html>
"right" 方法是在控制器中执行此操作:
$scope.ages = {};
然后在模板中:
Name: {{data.name}} <input type="text" ng-model="ages[data.name]">
应该可以...
我不确定你为什么要在另一个人中保留一个人的年龄 object/container。这是可以帮助您重新考虑设计的解决方案。
$scope.people= [
{name: 'Tan', age: 20},
{name: 'Jim', age: 21}
];
<div ng-repeat="person in people">
Name: {{person.name}} <input type="text" ng-model="person.age">
</div>
我有一个循环 ng-repeat
<div ng-repeat="data in datas">
Name: {{data.name}} <input type="text" ng-model="age">
</div>
我希望 $scope.age
成为 $scope.age_data.name
。例如:$scope.age_Tan、$scope.age_Jim...
所以我试过 ng-model="age_{{data.name}}"
但它出错了。
如何解决?
您在此处显示的内容不会完全起作用这里有几个选项
angular.module('myApp', [])
.controller('MyCtrl', function() {
var vm = this;
vm.datas = [{
name: 'thing1'
}, {
name: 'thing2'
}, {
name: 'thing3'
}];
})
<html ng-app="myApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
</head>
<body ng-controller="MyCtrl as myCtrl">
Option 1
<div ng-repeat="data in myCtrl.datas">
<input type="text" ng-model="data.age" />
</div>
<br/>
<br/>Option 2
<div ng-repeat="data in myCtrl.datas">
<input type="text" ng-model="myCtrl.age[data.name]" />
</div>
<pre>{{myCtrl|json}}</pre>
</body>
</html>
"right" 方法是在控制器中执行此操作:
$scope.ages = {};
然后在模板中:
Name: {{data.name}} <input type="text" ng-model="ages[data.name]">
应该可以...
我不确定你为什么要在另一个人中保留一个人的年龄 object/container。这是可以帮助您重新考虑设计的解决方案。
$scope.people= [
{name: 'Tan', age: 20},
{name: 'Jim', age: 21}
];
<div ng-repeat="person in people">
Name: {{person.name}} <input type="text" ng-model="person.age">
</div>