【发布时间】:2016-08-12 00:25:37
【问题描述】:
我正在尝试访问我的控制器中的表单对象。表单位于 ng-repeat 块中,它具有动态名称,从 v1.3 开始我应该可以访问它。
js:
var app = angular.module('app', []);
app.controller('AppCtrl', ['$scope', function($scope) {
$scope.forms = [0];
$scope.testForm = function() {
if($scope.form0 == undefined) {
$scope.test = 'Form is NOT defined';
} else {
$scope.test = 'Form is defined';
}
}
}])
html:
<body ng-app="app">
<div ng-controller="AppCtrl">
<div ng-repeat="form in forms" ng-init="formName = 'form' + $index">
form name should be {{formName}}
<form name="{{formName}}">
<input type="text" name="field" />
</form>
</div>
<button ng-click="testForm()">Check if form exists</button>
<p ng-bind="test"></p>
</div>
</body>
但在我的控制器中 $scope.form0 是未定义的 - 单击“检查表单是否存在”后,我收到“表单未定义”消息。即使我给它一个静态名称(<form name="form0">),我仍然会一直不确定。当我从 ng-repeat 循环中取出表单时,它工作正常。
知道为什么没有设置吗?
上面的例子: https://plnkr.co/edit/Fvy5LdIO0H1vCS9wYR0U?p=preview
提前致谢!
【问题讨论】:
标签: javascript angularjs forms angularjs-ng-repeat