AngularJS表单在控制器

时间:2018-01-12 08:50:40

标签: javascript html angularjs

我正在尝试访问控制器中$ scope中的html定义表单。问题是表单是在ng-switch指令下,所以我怀疑这是问题所在。不过,我找不到任何解决方案。

我的代码是:

<div ng-switch="bla">
   <div ng-switch-when="blabla">
       <form name="myForm">
       </form>
    </div> 
</div>

js:$scope.myForm正在返回 undefined

你能帮我解决这个问题吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

是的,你是对的: 该指令创建新范围。 像ng-if一样。 请参阅:https://docs.angularjs.org/api/ng/directive/ngSwitch

这可能是一个答案: https://github.com/angular/angular.js/issues/10944 https://github.com/angular/angular.js/wiki/Understanding-Scopes#ng-include

如果您需要在控制器中使用html代码调用的方法中的表单,则可以将该表单用作参数。

例如:

<form name="dataForm" ng-submit="$parent.processForm(dataForm)">

processForm是控制器中的一种方法。 由于ng-switch下的子范围,你需要$ parent。

答案 1 :(得分:0)

  1. 检查div“ng-switch-when”的条件是否为真,即“blabla”是否为真。因为只有在条件为真的情况下,表格才会存在

  2. 如果它不起作用,则尝试在控制器中声明表单对象(在控制器加载时)。像这样

  3. $ scope.myForm = {};

    希望它能奏效........