Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试在可重用指令中向可能具有不同类、不同元素和不同文本的元素添加click_Javascript_Angularjs_Angularjs Directive_Angularjs Ng Click - Fatal编程技术网

Javascript 尝试在可重用指令中向可能具有不同类、不同元素和不同文本的元素添加click

Javascript 尝试在可重用指令中向可能具有不同类、不同元素和不同文本的元素添加click,javascript,angularjs,angularjs-directive,angularjs-ng-click,Javascript,Angularjs,Angularjs Directive,Angularjs Ng Click,因此,我的愿望是:我需要向任何html元素添加一个指令,并向其传递一个id。然后使用该id填充一个方法,该方法提交一个在页面上具有该id的表单 一些开发人员使用了按钮,一些人使用了锚定标记,所以我不希望元素的类型成为方法的一部分。它旨在具有高度可重用性 我已经让它像这样工作: angular.module("App").directive("submitform", submitFormDirective); function submitFormDirective(){ return

因此,我的愿望是:我需要向任何html元素添加一个指令,并向其传递一个id。然后使用该id填充一个方法,该方法提交一个在页面上具有该id的表单

一些开发人员使用了按钮,一些人使用了锚定标记,所以我不希望元素的类型成为方法的一部分。它旨在具有高度可重用性

我已经让它像这样工作:

angular.module("App").directive("submitform", submitFormDirective);

function submitFormDirective(){
    return {
    restrict: 'A',
    scope: true,
    link: function($scope, $element, $attrs){
    var selector = $attrs.submitform;

    $element.on('click', function(){
      angular.element(selector).submit();
    });
  }
 }
}
但这使用jquery作为on方法。我想要一个全角度的方法。或者不使用框架或jquery的

按照我现在的方式,我只需要将这个属性应用于元素。提交表单=表单id,我希望保留该功能,因为它干净简洁。因此,我需要能够在submitFormDirective中动态地将ng click添加到元素中,而无需使用限制模板函数,该函数将限制所影响的元素


问题是$attrs.$set'ngClick','submitForm'在摘要之后运行,$compile似乎对我不起作用。我需要能够添加点击,然后只在这个元素上运行编译,或者在应用程序编译运行之前使用不同的阶段。但是,我尝试使用compile来连接attr,并将方法添加到作用域中,但没有效果。很奇怪,您无法从指令中添加事件。我一定错过了什么。有人能帮忙吗?

我想$element.on可以。因为它将使用jqLite只是为了添加到上面,所以只要你不在应用程序中加载jQuery,它将使用jqLite。如果应用程序在Angular之前加载jQuery,那么$element的方法将使用jQuery。但无论哪种方式,您都可以使用on:对于添加ngClick,您可以使用$timeout$timeoutfunction{$attrs.$set'ngClick','submitForm',100。这个解决方案解决了我的DigestTorry的问题,很抱歉,我的坏,它确实似乎包含在jqlite中。Raika或Sunil你可以发布n个答案,这样我就可以接受,你就可以得到分数了吗?