3

有一个简单的表格

<ng-form name="foo">
    <button />
</ng-form>

单击该按钮应提醒表单名称foo

有没有角度的方法来做到这一点?

编辑:告诉我我父母的名字是一个可能的解决方案。

4

3 回答 3

0

您应该可以在以下位置访问它$scope

$scope.foo

于 2015-12-01T15:20:25.097 回答
0

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

希望能帮助到你!

于 2015-12-01T15:32:22.357 回答
0

假设按钮的表单是它的直接父级,您可以利用$eventon 属性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 框架的设计目标的一部分。

于 2015-12-02T11:33:19.927 回答