Обучаясь Угловое я реализовал ember.js электронной почты виджет из своей домашней странице (не отображается в plunkr по каким-то причинам): http://plnkr.co/edit/OACzZbDHyNNNYM9oG5gB?p=previewКак переключать представления с маршрутизацией внутри директивы?
К сожалению, их исходный код выглядит намного чище и меньше, чем версия моего ANGULAR о нем ...
Я реализовал это создание пользовательских директиву <art-mailbox></art-mailbox>
Теперь я хочу, чтобы изменить поведение по умолчанию, отображая сообщение электронной почты не на той же странице под списком сообщений, но на отдельной странице.
В основном я хочу, чтобы добавить маршрут для правой части моего виджета, что-то вроде этого:
function config($routeProvider) {
$routeProvider
.when('/mailboxes/:mailboxId/:messageId', {
templateUrl: 'messageView.html',
controller: 'MessageCtrl'
})
.when('/mailboxes/:mailboxId', {
templateUrl: 'messagesListView.html',
controller: 'MessagesListCtrl'
})
Но проблема - я не хочу, чтобы изменить адрес страницы. Я хочу, чтобы он оставался «http://localhost/index.html», а не «http://localhost/index.html#/mailboxes/inbox/53», потому что на той же странице у меня будет несколько виджетов, и я не хочу, чтобы они исчезали после обновления страницы.
Я думаю, что я мог бы достичь переключения вида через директиву ng-switch
, но мне не нравится этот подход, потому что у меня не будет возможности иметь пользовательские контроллеры для каждого вида.
Это своего рода уродливое. Взгляните сами:
<section class="main">
<div ng-switch="vm.activeMailboxId">
<div ng-switch-when="none">
<div ng-include="'partials/mailbox.default.html'"></div>
</div>
<div ng-switch-default>
<div ng-include="'partials/mailbox.details.html'"></div>
</div>
</div>
</section>
Картинка 1: Зеленый флажок - виджет # 1, красный квадрат - виджет 2 #. Нет сообщений электронной почты не были выбраны еще Изображение 2: Первый электронный адрес выбирается и отображается его содержание ниже
Спасибо за предложения. Я просто понимаю, что ничто не мешает мне назначить другую директиву ng-controller для каждого из моих подпрограмм :) – yaru