Hier ist eine Direktive, die target="_blank"
allen <a>
Tags mit einem href
Attribut hinzugefügt wird. Das heißt, sie werden alle in einem neuen Fenster geöffnet. Denken Sie daran, dass Anweisungen in Angular für jede Dom-Manipulation / jedes Dom-Verhalten verwendet werden. Live-Demo (klicken).
app.directive('href', function() {
return {
compile: function(element) {
element.attr('target', '_blank');
}
};
});
Hier ist das gleiche Konzept, das weniger invasiv (damit nicht alle Links betroffen sind) und anpassungsfähiger ist. Sie können es für ein übergeordnetes Element verwenden, damit es alle untergeordneten Links beeinflusst. Live-Demo (klicken).
app.directive('targetBlank', function() {
return {
compile: function(element) {
var elems = (element.prop("tagName") === 'A') ? element : element.find('a');
elems.attr("target", "_blank");
}
};
});
Alte Antwort
Es scheint, als würden Sie nur "target="_blank"
für Ihr <a>
Tag verwenden. Hier sind zwei Möglichkeiten:
<a href="//facebook.com" target="_blank">Facebook</a>
<button ng-click="foo()">Facebook</button>
JavaScript:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $window) {
$scope.foo = function() {
$window.open('//facebook.com');
};
});
Live-Demo hier (klicken).
Hier sind die Dokumente für $window
: http://docs.angularjs.org/api/ng.$window
Sie könnten nur verwenden window
, aber es ist besser, die Abhängigkeitsinjektion zu verwenden und $window
zu Testzwecken Winkel zu übergeben.
ng-bind-html
?