我正在尝试在新选项卡中打开模态中的所有链接,并且由于使用角度的限制,操纵DOM并不像我想象的那么容易。有没有办法将click事件绑定到链接,然后使该click事件打开一个新选项卡?
我有类似的东西
w = angular.element($window)
w.bind 'click', (e) ->
# if link clicked open link in new tab?
答案 0 :(得分:1)
你不能只在每个链接上使用ng-click吗?
<a href="#" ng-click="openLink('http://www.google.com')">Open link in new window</a>
在你的控制器中有这样的东西:
$scope.openLink = (link) ->
window.open link
return
或仅使用html:
<a href="http://www.google.com" target="_blank">Open link in new window</a>
答案 1 :(得分:0)
基本规则是如果你要对DOM做任何事情,那么你应该有一个指令并在链接函数中使用普通的JQuery
new-tab.directive.coffee
angular.module 'my.module'
.directive 'newTab', ($window) ->
restrict: 'A'
link: (scope, element, attributes) ->
element.on('click', (evt)->
# Open link in new tab here
)
示例用法:
<a href='/your/link' new-tab>
您可能还需要做一些“防止默认”的事情,以便链接仍然不会转到当前窗口中的同一页面(现在我想到了它)。
您也可以尝试在任何节点和所有节点上设置_target ='blank'属性。
我没有测试过这个
new-tab-a.directive.coffee
angular.module 'my.module'
.directive 'a', -> #I doubt this is a good idea though using 'a' as a directive name.
restrict: 'E'
link: (scope, element, attributes) ->
attributes.target = '_blank'