当ng-init运行时,Angular Form不可用?

时间:2015-03-30 15:10:28

标签: angularjs

我无法访问控制器中的表单。另外,我甚至无法访问显示this的{​​{1}}。

路线:

undefined

HTML:

  $routeProvider.when '/deployments/deploy',
    templateUrl: 'deployments/partials/form.html'
    controller: 'deploy.new'

控制器:

  <form class="form-inline" ng-submit="submit()" name="form" ng-init="setFormScope(this)">
    <div class="pure-g clear">

更新:

如果我使用angular.module('infrastructure.deployments') .controller 'deploy.new', ($scope, $q, $location, ) -> $scope.setFormScope = (this) -> console.log this 未定义。但是,如果我使用<div ng-init="setFormScope(form)"></div>,那么我会得到表单对象。为什么<div ng-mouseup="setFormScope(form)"></div>运行时表单不准备/可用?

1 个答案:

答案 0 :(得分:3)

this是保留字。您不能(或不应该)将其用作参数名称。

setFormScope(this)是一个角度表达式,它不是真正的javascript,它是由angular进行评估的,this在给定的上下文中是不知道的,因此它的计算结果为undefined

要传递表单,您可以使用其名称setFormScope(form),或者您甚至可以直接从控制器访问它,因为它可以在作用域上访问:$scope.form(再次使用其名称)。