$ state.go 함수를 사용하여 “새 탭에서 링크 열기”기능을 구현하려고합니다. 다음과 같은 smth가 있으면 멋질 것입니다.
$state.go('routeHere', {
parameter1 : "parameter"
}, {
reload : true,
newtab : true // or smth like target : "_blank"
});
AngularJS를 사용하여 수행 할 수있는 방법이 있습니까?
답변
업데이트 : 좋아, 방금 다음 코드를 사용하여 해결했습니다.
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을 제공합니다. 윈윈!
답변
비슷한 문제가 발생했습니다. 이전 답변에서 아무것도 효과가 없으면 이것을 시도하십시오.
var url = '#' + $state.href('preview');
window.open(url,'_blank');
그러니까 기본적으로 추가하지 않고, 로컬 호스트에서 작업하는 동안 '#'
단지로 리디렉션 된
localhost / 미리보기
, 대신에
localhost / Project_Name / # / preview
나는 여기에서 데이터를 전달하는 것이 아니라 새 탭에서 $ state를 여는 것입니다.
답변
앱이 하위 폴더에있는 경우 localhost에서 작동하지 않을 수 있습니다. 사실 같은 문제가있었습니다.
나는 온라인으로 시도했고 다음을 사용하여 예상대로 작동했습니다.
<a ui-sref="routeHere" target="_blank">Link</a>
답변
내가 찾은 가장 좋은 대답은 ui.router를 확장하는 것이 었습니다. 기능이 빌드에 존재하지 않기 때문입니다. 자세한 내용은 여기에서 찾을 수 있습니다.
Angular 1.x ui-router의 $ state.go 확장
그러나 다음은 app.js 또는 각도 앱 초기화 파일에 추가해야하는 작업에 대한 간단한 설명입니다.
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"});
답변
ui-sref="routeHere" href=""target="_blank"
이 코드는 내 문제를 해결했습니다.
앵커 태그에서 사용하십시오.
답변
이 시도!
<a ui-sref="routeHere({parameter: vm.parameter})" target="_blank"></a>