Я знаю, что это было рассмотрено много раз, и большинство статей относятся к этому фрагменту кода: Модальное окно с настраиваемым URL в AngularJS
Но я просто не понимаю. Я не считаю, что это очень ясно. Я также нашел этот jsfiddle, который был действительно отличным, очень полезным, за исключением того, что это не добавляет URL-адрес и позволяет мне использовать обратную для закрытия модального режима.
Изменить: мне нужна помощь.
Итак, позвольте мне попытаться объяснить, чего я пытаюсь достичь. У меня есть форма для добавления нового элемента, и у меня есть ссылка "Добавить новый элемент". Я хотел бы, когда я нажимаю "добавить новый элемент", модальный всплывает с формой, которую я создал "add-item.html". Это новое состояние, поэтому URL-адрес изменяется на /add -item. Я могу заполнить форму, а затем выбрать сохранить или закрыть. Закрыть, закрывает модальный: p (как нечетно). Но я также могу щелкнуть назад, чтобы закрыть модальный, и вернуться на предыдущую страницу (состояние). Мне не нужна помощь с Close в этот момент, поскольку я все еще борется с тем, чтобы на самом деле получить модальную работу.
Это мой код в его нынешнем виде:
Контроллер навигации: (это даже правильное место для размещения модальных функций?)
angular.module('cbuiRouterApp')
.controller('NavbarCtrl', function ($scope, $location, Auth, $modal) {
$scope.menu = [{
'title': 'Home',
'link': '/'
}];
$scope.open = function(){
// open modal whithout changing url
$modal.open({
templateUrl: 'components/new-item/new-item.html'
});
// I need to open popup via $state.go or something like this
$scope.close = function(result){
$modal.close(result);
};
};
$scope.isCollapsed = true;
$scope.isLoggedIn = Auth.isLoggedIn;
$scope.isAdmin = Auth.isAdmin;
$scope.getCurrentUser = Auth.getCurrentUser;
$scope.logout = function() {
Auth.logout();
$location.path('/login');
};
$scope.isActive = function(route) {
return route === $location.path();
};
});
Вот как я активирую модальный:
<li ng-show='isLoggedIn()' ng-class='{active: isActive("/new-item")}'>
<a href='javascript: void 0;' ng-click='open()'>New Item</a>
</li>
нового item.html:
<div class="modal-header">
<h3 class="modal-title">I'm a modal!</h3>
</div>
<div class="modal-body">
<ul>
<li ng-repeat="item in items"><a ng-click="selected.item = item">{{ item }}</a></li>
</ul>Selected:<b>{{ selected.item }}</b>
</div>
<div class="modal-footer">
<button ng-click="ok()" class="btn btn-primary">OK</button>
<button ng-click="close()" class="btn btn-primary">OK</button>
</div>
Кроме того, пока он открывает модальный режим, он не закрывает его, так как я не мог этого сделать.