0

У меня есть несколько маршрутов с некоторыми видами, которые используют мой шаблон index.html в качестве шаблона. В определенном представлении (например, странице входа) я не хочу использовать index.html в качестве шаблона. Как это сделать с угловыми:Использование углового без шаблона страницы

My routes: 
.when('/user/:id/update',{ 
     templateUrl: 'views/updateUser.html', 
     controller: 'updateUserCtrl' 
    }) 
    .when('/role', { 
    templateUrl: 'views/role.html', 
    controller: 'RoleCtrl' 
    }) 
    .when('/login', { 
    controller: 'RoleCtrl' //Here I want a page withou template 
    }) 

Я уже пытался использовать UI-маршрут, как это:

$stateProvider 
.state('contacts', { 
    abstract: true, 
    template: '<ui-view/>', 
    url: '/contacts' 
}) 
.state('contacts.list', { 
    // loaded into ui-view of parent's template 
    templateUrl: 'contacts.list.html', 
    url: '/list' 
}) 
.state('contacts.detail', { 
    // loaded into ui-view of parent's template 
    templateUrl: 'contacts.detail.html', 
    url: '/detail' 
}) 

В обоих случаях мои страницы всегда наследуют от моего index.html.

+0

Почему вы хотите это сделать? Каким будет точка маршрутизации на страницу, но ничего не показывающая пользователю? Если вам это действительно нужно, вы можете просто перейти на пустой шаблон html, но я не вижу смысла в i. – rageandqq

+0

Возможно, вам просто нужно иметь пустое тело в вашем index.html и иметь один «главный» шаблон, который имеет все ваши текущие html с другими маршрутами в качестве дочерних, но с '/ login' с другим основным шаблоном? –

+0

Привет, у моего index.html есть шаблон для почти моих страниц, но некоторые страницы совершенно разные, и я не хочу использовать index.html в качестве шаблона, я бы хотел, чтобы на этих страницах , Другим примером является страница входа в систему. Моя страница входа в систему - это просто форма для регистрации пользователя или регистрация, у меня нет заголовка, нижнего колонтитула, бокового меню и т. Д. – Gustavo

ответ

0

с ui-маршрутизатором, по крайней мере, вы можете сделать абстрактное: true, чтобы установить маршрут без шаблонов и контроллеров стека на представления для раздельного поведения. https://github.com/angular-ui/ui-router/wiki/Nested-States-%26-Nested-Views

в противном случае, с ванильным углом зрения, теоретически вы могли бы просто создать шаблон: «", если вы хотите загрузить контроллер без шаблона. http://weblog.west-wind.com/posts/2013/Oct/15/Routing-to-a-Controller-with-no-View-in-Angular

+0

Привет, На самом деле спасибо за вашу помощь, я пытался это сделать, но он не работает, я не знаю, пишу ли я. Я думаю, что я пытаюсь сделать это довольно просто, и почти все проекты имеют такой сценарий. Не могли бы вы помочь мне с простым примером? – Gustavo

+0

Я думаю, что неправильно понял ваш вопрос. на вашем index.html, у вас есть некоторые элементы, которые окружают ng-view, в который вставляются ваши шаблоны. Вам не нужны эти элементы вообще для вашей зарегистрированной страницы? – iwoodruff

+0

Я думаю, что в этом случае вам понадобится отдельная страница индекса - например, loggedInIndex.html, которая будет иметь разметку, которую вы хотели бы, а затем в своем маршрутизаторе вы бы сделали templateUrl: «views/loggedInIndex.html» – iwoodruff

0

Этот способ работы не рекомендуется, так как ваш браузер перезагружает весь контент вашего приложения и нарушает всю концепцию приложения с одной страницей.

Один из подходов использует ng-view/ui-view в вашем шаблоне (html-файл) и $ location в вашем сервисе/контроллере для замены URL-адреса, если аутентификация пользователя была в порядке.

Взгляните на эту plunkr с двумя примерами работ по:

http://plnkr.co/edit/vPyH5lwbwYCMx6RCnVb0?p=preview

Смежные вопросы