有一个简单的表格
<ng-form name="foo">
<button />
</ng-form>
单击该按钮应提醒表单名称foo。
有没有角度的方法来做到这一点?
编辑:告诉我我父母的名字是一个可能的解决方案。
有一个简单的表格
<ng-form name="foo">
<button />
</ng-form>
单击该按钮应提醒表单名称foo。
有没有角度的方法来做到这一点?
编辑:告诉我我父母的名字是一个可能的解决方案。
您应该可以在以下位置访问它$scope
:
$scope.foo
ng-click
期望当前范围内的Angular
表达式或函数。看起来Angular
不允许您使用全局范围方法。
Angular 使用
$parse
服务来评估ng-click="expression"
.
$parse
使用字符串解析来解释expression
,它将您对变量、函数和对象的访问限制为仅属于$scope
对象属性或任何$parent
范围对象属性的那些。
在你的Template
&中试试这个Controller
!
模板
ng-click="alert(foo.$name)" <!-- foo ~ MY_FORM_NAME in your case -->
控制器
$scope.alert = function(formName){ alert(formName); }
这将JavaScript
alert()
正确执行。
有关更多信息,请参阅AngularJS/ngClick。
希望能帮助到你!
假设按钮的表单是它的直接父级,您可以利用$event
on 属性ng-click
遍历 DOM 并定位父表单元素。这使用angular.element(someElement).parent()
.
$scope.showFormName = function($event) {
$scope.formName = angular.element($event.target).parent()[0].name;
};
<button ng-click="showFormName($event)">Show Form Name</button>
http://plnkr.co/edit/yDPc76rqUHpOcL2aGeIU?p=preview
如果按钮不是表单元素的直接后代,或者不在表单本身内,则可能需要更高级的 DOM 遍历,最有可能通过 JQuery,因为这不是 Angular 框架的设计目标的一部分。