Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 如何使表格中的整行像ngtable(angularjs)中的超链接(在新选项卡中打开等)_Javascript_Jquery_Angularjs_Ngtable - Fatal编程技术网

Javascript 如何使表格中的整行像ngtable(angularjs)中的超链接(在新选项卡中打开等)

Javascript 如何使表格中的整行像ngtable(angularjs)中的超链接(在新选项卡中打开等),javascript,jquery,angularjs,ngtable,Javascript,Jquery,Angularjs,Ngtable,我在ngtable中使用AngularJS 每次创建表时,我都会将ui sref放在元素上,如下所示: <tr ng-repeat="element in $data" ui-sref="app.some.details.info({id: element.id})"> <td>{{element.name}}</td> <td>{{element.info}}</td> </tr> <tr ng-repea

我在ngtable中使用AngularJS

每次创建表时,我都会将
ui sref
放在
元素上,如下所示:

<tr ng-repeat="element in $data" ui-sref="app.some.details.info({id: element.id})">
  <td>{{element.name}}</td>
  <td>{{element.info}}</td>
</tr>
<tr ng-repeat="element in $data" ui-sref="app.some.details.info({id: element.id})">
  <td>
    <a href="#" title="...">{{element.name}}</a>
  </td>
  <td>
    <a href="#" title="...">{{element.info}}</a>
  </td>
</tr>

{{element.name}
{{element.info}
但是,这不允许用户在新选项卡中打开条目,右键单击条目以在新窗口中打开条目,等等(其行为与
不同)


有没有什么方法可以让整行都可以通过在新选项卡/窗口中打开的选项来点击(就像这个例子)

哟!如果希望行内容像


您还可以创建一些自定义javascript来重新创建
行为。为每个表行创建单击侦听器,并使用
window.location.href=…

Yo!如果希望行内容像


您还可以创建一些自定义javascript来重新创建
行为。为每个表行创建单击侦听器,并使用
window.location.href=…

您可以使用函数
$state.href
窗口来完成。打开

还可以使用变量控制是否新建选项卡:

// <tr ng-repeat="element in $data" ng-click="navigateTo(element.id, false)"> -- Same Tab
<tr ng-repeat="element in $data" ng-click="navigateTo(element.id, true)">
  <td>{{element.name}}</td>
  <td>{{element.info}}</td>
</tr>

...

//In the controller
$scope.navigateTo = function(id, inNewTab){
  if(inNewTab){ // New tab
     var url = $state.href('app.some.details.info', {id: id});
     window.open(url , "_blank")
  } else { // Same tab
     $state.go('app.some.details.info', {id: id});
  }
}
/--相同的选项卡
{{element.name}
{{element.info}
...
//在控制器中
$scope.navigateTo=函数(id,在newtab中){
如果(在新选项卡中){//新选项卡
var url=$state.href('app.some.details.info',{id:id});
窗口。打开(url,“\u空白”)
}else{//相同的选项卡
$state.go('app.some.details.info',{id:id});
}
}

您可以使用一个函数,
$state.href
窗口。打开

还可以使用变量控制是否新建选项卡:

// <tr ng-repeat="element in $data" ng-click="navigateTo(element.id, false)"> -- Same Tab
<tr ng-repeat="element in $data" ng-click="navigateTo(element.id, true)">
  <td>{{element.name}}</td>
  <td>{{element.info}}</td>
</tr>

...

//In the controller
$scope.navigateTo = function(id, inNewTab){
  if(inNewTab){ // New tab
     var url = $state.href('app.some.details.info', {id: id});
     window.open(url , "_blank")
  } else { // Same tab
     $state.go('app.some.details.info', {id: id});
  }
}
/--相同的选项卡
{{element.name}
{{element.info}
...
//在控制器中
$scope.navigateTo=函数(id,在newtab中){
如果(在新选项卡中){//新选项卡
var url=$state.href('app.some.details.info',{id:id});
窗口。打开(url,“\u空白”)
}else{//相同的选项卡
$state.go('app.some.details.info',{id:id});
}
}

在这种情况下,它将始终在新选项卡中打开,对吗?正如我所说,我希望有一个选项,以打开新的标签,而不是总是在新的打开tab@lukaszrys可以为同一个变量添加一个变量。谢谢你的回复。虽然这是真的,但我希望它是由用户控制的,而不是由开发人员控制的。我想,如果有人按住CTRL键,您的解决方案可以调整为在新选项卡中打开,但它仍然没有覆盖
behaviour@lukaszrys您是否尝试将该行包装在
标记中并将
ui sref
设置为该行?您的意思是将
元素放入
中?是的,我做了,但是它被忽视了。一旦它满足我的问题/顾虑,我将接受它。在这种情况下,它将始终在新选项卡中打开,对吗?正如我所说,我希望有一个选项,以打开新的标签,而不是总是在新的打开tab@lukaszrys可以为同一个变量添加一个变量。谢谢你的回复。虽然这是真的,但我希望它是由用户控制的,而不是由开发人员控制的。我想,如果有人按住CTRL键,您的解决方案可以调整为在新选项卡中打开,但它仍然没有覆盖
behaviour@lukaszrys您是否尝试将该行包装在
标记中并将
ui sref
设置为该行?您的意思是将
元素放入
中?是的,我做了,但是它被忽视了。一旦它遇到我的问题/担忧,我会接受它。是的,这是解决它的一种方法,但仍然不是超优雅的方法。是的,这是解决它的一种方法,但仍然不是超优雅的方法