Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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 如何在ng上调用函数单击a<;a>;具有在新选项卡中打开功能的链接_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 如何在ng上调用函数单击a<;a>;具有在新选项卡中打开功能的链接

Javascript 如何在ng上调用函数单击a<;a>;具有在新选项卡中打开功能的链接,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个元素是这样的 <a ng-click="vm.openPage(page)">{{page.pageId}}</a> 问题是,我需要该链接能够在右键单击的新选项卡中打开,但仍然运行函数和验证。试过了吗 ng-href={{vm.openPage(page)}} 但这会在页面加载时运行该函数,而我不能这样做,因为链接是一个表中有20行的列 有没有办法做到这一点?使用以下方法: 在html中: <a ng-href="{{(test() &&

我有一个元素是这样的

<a ng-click="vm.openPage(page)">{{page.pageId}}</a>
问题是,我需要该链接能够在右键单击的新选项卡中打开,但仍然运行函数和验证。试过了吗

ng-href={{vm.openPage(page)}}
但这会在页面加载时运行该函数,而我不能这样做,因为链接是一个表中有20行的列

有没有办法做到这一点?

使用以下方法:

在html中:

 <a ng-href="{{(test() && url && !loading)||'#'}}">click here</a>
确保加载页面时,条件为false(如果为true),将“添加加载状态”标志设置为加载函数,并在链接中使用它

以下JSFIDLE中的示例使用以下命令:

在html中:

 <a ng-href="{{(test() && url && !loading)||'#'}}">click here</a>
确保加载页面时,条件为false(如果为true),将“添加加载状态”标志设置为加载函数,并在链接中使用它


以下JSFIDLE中的示例

不要使用
ng单击
,使用
ng href
target=“\u blank”
。如果使用ng click,则无法使用ctrl+click left,这很烦人。正如我所说,如果使用ng href,它会在页面加载时自动为表中的每一行运行该功能,我只需要在单击它或在新选项卡中打开它时才需要运行该功能,而target=“\u blank”对此没有帮助。请使用ng href中答案的$state.href。ng href=“$state.href(..”)那么它应该是好的。它计算url,只有在单击它时才直接重定向您。不要使用
ng click
,使用
ng href
target=“\u blank”
。如果使用ng click,则无法使用ctrl+click left,这很烦人。正如我所说,如果使用ng href,它会在页面加载时自动为表中的每一行运行该功能,我只需要在单击它或在新选项卡中打开它时才需要运行该功能,而target=“\u blank”对此没有帮助。请使用ng href中答案的$state.href。ng href=“$state.href(..”)那么它应该是好的。它会计算url,并且不会直接重定向您,只有在单击它时才可以。如果我希望它在进入函数时始终在新选项卡中打开,这是可以的,但我需要它能够在左键单击时在同一选项卡中打开,如果我想右键单击并在新选项卡中打开它,则在新选项卡中打开它。如果我想在它进入函数时始终在新选项卡中打开它,则这是可以的,但我需要它能够在左键单击时在同一选项卡中打开,如果我想右键单击并在新选项卡中打开它,则在新选项卡中打开它。
var url = "http://www.google.com";
$scope.test = function () {

     if(  $scope.pass =="pass") { // your condition
        return true;
     }
     else {
       return false;
     }

   };