Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何在$scope中按名称获取表单?_Angularjs - Fatal编程技术网

Angularjs 如何在$scope中按名称获取表单?

Angularjs 如何在$scope中按名称获取表单?,angularjs,Angularjs,如何在$scope中按名称获取表单? 测试示例: <div ng-controller="solod"> <form name="good_f"> <input type="text" name="super"> </form> </div> <script> function solod($scope){ console.log($scope.good_f)//undefined

如何在$scope中按名称获取表单? 测试示例:

<div ng-controller="solod">
  <form name="good_f">
   <input type="text" name="super">
  </form>
</div>



 <script> 
  function solod($scope){
    console.log($scope.good_f)//undefined 
  }

函数solod($scope){
console.log($scope.good\u f)//未定义
}

有可能吗?谢谢

您通常不希望控制器像这样访问表单,这会使控制器与视图的结构耦合得太紧。相反,像这样将表单传递给控制器

<div ng-controller="solod">
  <form name="good_f" ng-submit="submit(good_f)">
   <input type="text" name="super">
  </form>
</div>



 <script> 
  function solod($scope){
    $scope.submit = function(theForm){
          console.log(theForm)// not undefined 
          console.log($scope.good_f) // will exist now also
    };

    // do stuff in a watch
    $scope.$watch("good_f", function(formVal){ console.log(formVal);});
  }
  </script>

函数solod($scope){
$scope.submit=函数(表单){
console.log(theForm)//未定义
console.log($scope.good\u f)//现在也将存在
};
//在手表里做事
$scope.$watch(“good_f”,function(formVal){console.log(formVal);});
}
否则,如果您只想跟踪文本输入的值,请给它一个
ng model

编辑: 在进一步的研究中,$scope将具有良好的_f属性,只是当您将其记录到构造函数中时就没有了。如果你愿意的话,你可以把手表调好,但我还是认为你应该把它递过来

名称(可选)表单的字符串名称。如有指明,表格 控制器将以此名称发布到相关作用域中

注意:不要用这个-认真的

角度不是jQuery。

作为您的问题的PAR,您可以在控制器中使用<代码> $Eng/<代码>(如果您不具体使用<代码> $范围< /代码>此用例的使用)-


另一种可能的方法是使用
ng表单
,这将帮助您通过scope轻松访问表单

<div ng-controller="solod">
  <ng-form name="good_f">
   <input type="text" name="super">
  </ng-form>
</div>

非常肯定他会在ng form@JeremyWeir上遇到同样的时间问题谢谢你指出,我甚至没想到(这是一个极好的答案,因为即使这不是做事的方式,但显然是学习的方式
<div ng-controller="solod">
  <ng-form name="good_f">
   <input type="text" name="super">
  </ng-form>
</div>
 function solod($scope){
    $timeout(function(){
      console.log($scope.good_f);
    });
 }