如何从Angular-Meteor的动态表单中获取数据?

时间:2015-12-01 11:16:39

标签: angularjs meteor angular-meteor

我想从一个非常简单的动态表单中获取数据,我需要你的帮助。我的基本形式(当我开始工作时会升级)看起来像这样。

HTML:

<form class="new-task">

    <li ng-repeat="user in party.invited">

        {{user.email}}: <input ng-model="newTask">

    </li>

    <button ng-click="addTask(newTask);">ADD</button>
</form>

基本上它会为我所选方中的每个用户创建一个输入字段。现在我想获得所有这些输入字段中的所有数据。在这里,我失去了......

我尝试在控制台中记录内容,但我总是得到&#39; undefined&#39;。

JS:

angular.module("testapp").controller("TaskCtrl", ['$scope', '$stateParams', '$meteor',

  function ($scope, $stateParams, $meteor) {

    $scope.party = $meteor.object(Parties,$stateParams.partyId).subscribe('parties');   

    $scope.addTask = function (newTask) {
        console.log(newTask);
    };

}]);

1 个答案:

答案 0 :(得分:1)

据我了解你的问题,你想将几个输入字段绑定到一个单独的数组。如果是这种情况,则需要在作用域中创建一个空数组,然后使用ng-repeatng-model属性中的tasks[$index]指令内引用数组元素。通过这种方式,您将能够通过访问tasks数组来检索所有输入。由于您希望一次访问所有数组元素,因此您不需要将newTask参数传递给addTask函数。

&#13;
&#13;
var myApp = angular.module('myApp', []);

function MyCtrl($scope) {
  $scope.party = {
    "invited": [{
      "email": "a@mail.com"
    }, {
      "email": "b@mail.com"
    }]
  };
  $scope.tasks = [];
  $scope.addTask = function() {
    console.log($scope.tasks);
  };
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="myApp">
  <div ng-controller="MyCtrl">
    <form class="new-task">
      <li ng-repeat="user in party.invited">
        {{user.email}}:
        <input ng-model="tasks[$index]" />
      </li>
      <button ng-click="addTask()">ADD</button>
    </form>
  </div>
</body>
&#13;
&#13;
&#13;