Angularjs 绑定到控制器内表单的角度JS

Angularjs 绑定到控制器内表单的角度JS,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我有一个初始化如下的表单-- 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

我有一个初始化如下的表单--

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再次是“未定义的”


另外,我正在调试控制器中需要的东西。具体来说,这在视图中也不起作用,在视图中,如果未输入inputb,我想显示一条错误消息。

嗯,表单似乎还没有初始化。正如您在中所看到的,超时时一切正常。但据我所知,$scope.userForm不打算以这种方式使用(在控制器init上)。它可用于:

  • 在模板中声明性地描述类,或禁用提交 按钮等。在表达式中使用它将永远不会生成异常
  • 提交时。它肯定会在那一刻被初始化

  • 请创建一个小提琴。这与本SO问题中解释的问题相同:[表单元素未出现在$scope][1][1]:
    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);