我正在开发一个Angular应用程序,并且我有一个包含iframe的视图(该iframe的目的只是显示登录表单)。
就像我尝试手动提交表单不成功一样,我试图记录公式以检查我是否真的能够到达它,但我对如何做到这一点感到困惑…
iframe中的form有name属性myForm
<iframe id="myIframe" name="myIframe" src="someUrl.com">
<html>
...
<form name="myForm" class="form" action="myAction()" method="post" onsubmit="myStuffToDO()">
...
...
</form>
...
</html>
</iframe>
所以我试图在控制器中记录表单的方式是这样的:
var iframeForm = angular.element.find('myForm');
console.log(iframeForm);
控制台的结果是:
[]
我真的很困惑如何做到这一点,所以请帮助我。
.find('myForm')
会找到<myForm>
标签,而不是带有属性值为"myForm"的标签。.find('[name="myForm"]')
是您正在寻找的,但它不会与内置元素实现一起工作,因为.find
,如文档中所述,"仅限于按标记名称查找"。这意味着您还需要在项目中包含jQuery。然后Angular就会用它来代替jqLite的实现,这样复杂的选择器就可以工作了。
您可以使用表单名访问范围如下:
console.log($scope.formName);
从页面中你可以通过angular访问angular元素。
元素+ jquery选择器如:angular.element("[name = ' myForm ']")