2015-08-12 4 views
1

Мое угловое приложение с ui-router работает внутри страницы по адресу /content/page.html. На странице также естьНастройка углового ui-router для использования абсолютных URL по умолчанию

<base href="/somewhere"> 

тег в голове.

Благодаря базовой теге я в конечном итоге с неправильными URL-адреса, указывающие на /somewhere#/section1 вместо /content/page.html#/section1

Я не могу удалить этот базовый тег, так как я только небольшая часть большого сайта. Есть ли способ сделать ui-router генерировать абсолютные URL по умолчанию? Я заметил, что ui-sref-opts="{absolute: true}" может это сделать, но он создает ссылку, используя базовый тег. Есть ли способ заставить ui-router всегда создавать абсолютные URL-адреса, используя window.location.pathname?

Редактировать: Я создал this plunker, что демонстрирует проблему.

С уважением, Маркус

ответ

-3

решаемым его с помощью углового декоратора и переопределения поведения функции $ urlRouter «HREF».

+0

У вас есть код для этого? – Dasmowenator

+0

@Markus, у вас есть код для этой проблемы? –

+0

@ Маркус, пожалуйста, укажите пример. – Rtype

0

Вы можете попробовать заменить <base href="/somewhere"> на <base href="/"> и добавить ссылку с вашего URL в вашей конфигурации маршрута в app.js.

HTML:

<base href='/'> 
<a ui-sref="nameOfTheRoute">Link</a> 

в app.js добавить маршрут:

$stateProvider.state('nameOfTheRoute',{url:'/', templateUrl:'Content/page.html'}) 

PS: Я попробовал это на моем приложение с другой базовой HREF, и это работает, так что вы можете попробовать без изменения базы URL-адрес.

HTML:

<base href='/somewhere'> 
<a ui-sref="nameOfTheRoute">Link</a> 

в app.js добавить маршрут:

$stateProvider.state('nameOfTheRoute',{url:'/somewhere', templateUrl:'Content/page.html'}) 

Я надеюсь, что это поможет вам.

+0

Thx. Похоже, что пользователям не удастся щелкнуть по ссылке и открыть ее на новой вкладке, не так ли? Угловое приложение и ui-router недоступны в «/ где-то». Я еще не пробовал. – Markus

+0

Привет, добавили ли вы зависимость в своем индексе, чтобы использовать ui router в вашем приложении app.js? Щелчок правой кнопкой мыши является обязательным? Для меня я использую modal bootstrap, чтобы открыть свое представление в новом окне. Но я не знаю, может ли это соответствовать вашим ожиданиям. – JonathanTheBrosh

+0

Какую технологию вы используете для своего приложения? – JonathanTheBrosh

0

Я надеюсь, что этот ответ поможет вам больше, чем мои предыдущие ответы ^^. Я протестировал ваш плункер, и теперь работает маршрут по умолчанию. Я надеюсь, что это то, что вы ищете

new plunker

Keep me informed. 
+0

Спасибо за помощь! Однако ссылки в этом плунжере все еще указывают на http://run.plnkr.co/somewher/route2. Протестировано с помощью Chrome. – Markus

+0

Да, я изменил маршрут, чтобы проверить, работает ли перенаправление. Итак, ваша проблема решена? – JonathanTheBrosh

+0

Нет, ссылки неверны. – Markus