Angularjs $state открыть ссылку в новой вкладке
Я пытаюсь реализовать функцию "Открыть ссылку в новой вкладке", используя $state.идут функции. Было бы здорово, если бы был smth, как:
$state.go('routeHere', {
parameter1 : "parameter"
}, {
reload : true,
newtab : true // or smth like target : "_blank"
});
есть ли способ сделать это с помощью AngularJS?
спасибо,
Алекс
7 ответов
Update: OK, Я просто решил его, используя следующий код:
var url = $state.href('myroute', {parameter: "parameter"});
window.open(url,'_blank');
Я только что попробовал это -- по-видимому, добавив target="_blank"
работает с ui-sref
:
<a ui-sref="routeHere" target="_blank">A Link</a>
сохраняет проблему добавления кода на ваш контроллер и дает вам URL-адрес при наведении, как и с любой обычной ссылкой. Выиграть-выиграть!
он может не работать на localhost в случае, если ваше приложение находится в подпапке. На самом деле у меня была та же проблема.
Я пробовал онлайн, и он работал, как ожидалось, используя:
<a ui-sref="routeHere" target="_blank">Link</a>
у меня была аналогичная проблема, попробуйте это, если ничего из предыдущих ответов работа для вас.
var url = '#' + $state.href('preview');
window.open(url,'_blank');
Так в основном во время работы в localhost, без добавления '#'
это было просто перенаправление на
localhost в/просмотр
, вместо
localhost/имя_проекта/# / предварительный просмотр
Я не беру здесь о передаче данных, просто чтобы открыть $state в новой вкладке.
ui-sref="routeHere" href=""target="_blank"
этот код решил мою проблему.
используйте это в теге привязки.
лучшим ответом, который я нашел, было расширение пользовательского интерфейса.маршрутизатор, поскольку функция, не существует build in. Вы можете найти полную информацию здесь:
расширение углового 1.x ui-состояние маршрутизатора$.go
однако, вот мое краткое объяснение того, что нужно сделать, Добавьте это в приложение.js или угловой файл init приложения:
angular.module("AppName").config(['$provide', function ($provide) {
$provide.decorator('$state', ['$delegate', '$window',
function ($delegate, $window) {
var extended = {
goNewTab: function (stateName, params) {
$window.open(
$delegate.href(stateName, params, { absolute: true }), '_blank');
}
};
angular.extend($delegate, extended);
return $delegate;
}]);
}]);
в коде
Вы сможете делать:
$state.goNewTab('routeHere', { parameter1 : "parameter"});