AngularJS:ng-model中的变量

时间:2015-05-06 04:24:36

标签: javascript angularjs angularjs-ng-repeat angularjs-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}}",但却犯了错误。 怎么解决这个问题?

3 个答案:

答案 0 :(得分:16)

&#34;对&#34;这样做的方法是在控制器中执行此操作:

$scope.ages = {};

然后在模板中:

Name: {{data.name}} <input type="text" ng-model="ages[data.name]">

应该工作......

答案 1 :(得分:1)

你在这里展示的东西在这里完全没有工作

&#13;
&#13;
angular.module('myApp', [])
  .controller('MyCtrl', function() {
    var vm = this;
    vm.datas = [{
      name: 'thing1'
    }, {
      name: 'thing2'
    }, {
      name: 'thing3'
    }];
  })
&#13;
<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>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

我不确定你为什么要把一个人的年龄留在另一个物体/容器中。这是一个可以帮助您重新考虑设计的解决方案。

$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>