我无法访问控制器中的表单。另外,我甚至无法访问显示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>
运行时表单不准备/可用?
答案 0 :(得分:3)
this
是保留字。您不能(或不应该)将其用作参数名称。
setFormScope(this)
是一个角度表达式,它不是真正的javascript,它是由angular进行评估的,this
在给定的上下文中是不知道的,因此它的计算结果为undefined
。
要传递表单,您可以使用其名称setFormScope(form)
,或者您甚至可以直接从控制器访问它,因为它可以在作用域上访问:$scope.form
(再次使用其名称)。