我有一个像这样初始化的表单 -
<div class="col-xs-12 col-md-8" ng-controller="myController">
<form name="userForm" class="form-horizontal" role="form" novalidate>
<div class="form-group">
<label for="inputb" class="col-xs-3 col-sm-3 control-label">Beam Width</label>
<div class="col-xs-6 col-sm-5">
<input type="text" class="form-control" name="inputb" placeholder="Input width in mm" ng-model="user.inputb" required>
</div>
</div>
</form>
</div>
理想情况下,我应该能够在控制器内访问表格,如此---
angular.module("myApp",[])
.controller("myController",function($http,$scope){
//user is bound to the form inputs
var i = $scope.userForm.inputb.$pristine;
console.log(i); //expected to be true or false
console.log($scope.userForm);
console.log(userForm);
但是第一个控制台输出给出了消息 - 无法访问未定义的属性M. 第二个控制台输出发出明显的消息“未定义” 有趣的是第三个控制台输出确实给出了userForm对象! 这里发生了什么,为什么我无法按预期在控制器中按名称访问表单元素?为什么删除$ scope打印对象?这并没有解决问题,因为只有userForm.M。$ pristine再次“未定义”。
P.S。我正在调试控制器中需要它的东西。具体来说,这也没有在视图中工作,如果没有输入inputb,我想在其中显示错误消息。
答案 0 :(得分:0)
好吧,似乎表单尚未初始化。正如您在this plunker中看到的,一切都在超时工作正常。但据我所知,$ scope.userForm并不打算以这种方式使用(在控制器init上)。它可能会被使用: