Javascript 使用Angular JS打开新页面

Javascript 使用Angular JS打开新页面,javascript,angularjs,angularjs-directive,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,您好,我正试图打开一个新的网页点击一个链接,而不是打开它在同一页 我是一个新的角度,无法实现 在这方面我需要帮助 这就是我迄今为止所尝试的 HTML: 这是我的指令,它将把target=\u blank添加到带有href属性的所有标记中。这意味着它们都将在新窗口中打开。请记住,指令在Angular中用于任何dom操作/行为。现场演示点击 app.directive('href', function() { return { compile: function(element) {

您好,我正试图打开一个新的网页点击一个链接,而不是打开它在同一页

我是一个新的角度,无法实现

在这方面我需要帮助

这就是我迄今为止所尝试的

HTML:


这是我的指令,它将把target=\u blank添加到带有href属性的所有标记中。这意味着它们都将在新窗口中打开。请记住,指令在Angular中用于任何dom操作/行为。现场演示点击

app.directive('href', function() {
  return {
    compile: function(element) {
      element.attr('target', '_blank');
    }
  };
});
app.directive('targetBlank', function() {
  return {
    compile: function(element) {
      var elems = (element.prop("tagName") === 'A') ? element : element.find('a');
      elems.attr("target", "_blank");
    }
  };
});
这是同样的概念,侵入性更小,因此不会影响所有链接,适应性更强。可以在父元素上使用它,使其影响所有子链接。现场演示点击

app.directive('href', function() {
  return {
    compile: function(element) {
      element.attr('target', '_blank');
    }
  };
});
app.directive('targetBlank', function() {
  return {
    compile: function(element) {
      var elems = (element.prop("tagName") === 'A') ? element : element.find('a');
      elems.attr("target", "_blank");
    }
  };
});

查看这篇文章

常规标记不起作用吗?尝试在新窗口中打开链接可能会导致一些问题。Angular旨在提供一页的应用程序体验,而您的请求意味着您的新窗口的范围将与您以前的应用程序的范围不同,因为从技术上讲,您正在创建一个新的应用程序。