在控制器中访问AngularJS表单

时间:2014-05-26 03:50:31

标签: angularjs angularjs-scope

这是正确的做法吗?主要的缺点是我必须在每个表单和控制器上执行此操作。

我有一个表单,想要通过将变量存储在控制器变量中然后在我的控制器中访问它来访问该表单。

在我看来我这样做:

<form name="formName">
    <div ng-init="setForm(formName);" />
</form>

在我的控制器中我得到了

$scope.setForm = function (form) {
            $scope.myForm = form;
}

现在执行此操作后,我有一个控制器变量,即$ scope.myForm。

1 个答案:

答案 0 :(得分:1)

表单将自动通过$ scope提供,无需明确保存。

如果您需要在控制器初始化时记录它,则需要等待Angular处理它。

HTML:

<body ng-controller="MyController">
  <form name="formName">
  </form>
</body>

JS:

app.controller('MyController', function($scope, $timeout) {

  $scope.$evalAsync(function() {
    console.log($scope.formName);
  });
});

演示: http://plnkr.co/edit/wGPKKIGjlQ6Q4GT0aAC6?p=preview