我正在尝试访问控制器中$ scope中的html定义表单。问题是表单是在ng-switch指令下,所以我怀疑这是问题所在。不过,我找不到任何解决方案。
我的代码是:
<div ng-switch="bla">
<div ng-switch-when="blabla">
<form name="myForm">
</form>
</div>
</div>
js:$scope.myForm
正在返回 undefined 。
你能帮我解决这个问题吗?
提前致谢。
答案 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)
检查div“ng-switch-when”的条件是否为真,即“blabla”是否为真。因为只有在条件为真的情况下,表格才会存在
如果它不起作用,则尝试在控制器中声明表单对象(在控制器加载时)。像这样
$ scope.myForm = {};
希望它能奏效........