У меня есть веб-приложение JavaScript, в котором я использовал AngularJS для облегчения работы, но теперь я столкнулся с небольшой проблемой.
Я хочу изменить viewfrom ng-controller. Я использую $ location.path для этого, но, к сожалению, ничего не происходит. Если я проверю объект $ location, путь будет изменен правильно, но представление не изменится.
У меня есть ng-view в моем Home.html. Это конфигурация, которую я написал для нее:
<html ng-app="app">
...
<body>
<div id="navigation-menu" ng-controller="NavigatorController">
<a class="menulink" ng-class="{ active: isActive('/labels')}" href="#page2">Page2</a>
<a class="menulink" ng-class="{ active: isActive('/labels')}" href="#page3">Page3</a>
</div>
<div ng-view></div>
</body>
</html>
Это конфигурация, которую я сделал для $ routeProvider, который работает безупречно, когда используется в меню
myApp.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'Page1.html',
controller: 'Page1Controller'
})
.when('/page2', {
templateUrl: 'Page2.html',
controller: 'Page2Controller'
})
.when('/page3', {
templateUrl: 'Page3.html',
controller: 'Page3Controller'
});
});
При открытии приложения я хочу показать page1.html в ng-view, так что, по-моему, это сортировка с помощью "/" url.
Проблема в том, что от любого другого контроллера я хочу иметь возможность вернуться к странице.html.
Я попытался сделать событие в каждом другом контроллере, например:
$scope.NavigateBack = function() {
$location.path('/');
}
Это не работает, к сожалению. Я не получаю никаких сообщений об ошибках, хотя... Я пробовал его с разными адресами в пути, например "/page2", но ничего не получилось.
Что я делаю неправильно, что представление не меняется, а страница не перемещается?
Я рекомендую использовать
$window.location = "#/"
но не забывайте вводить $ window вашему контроллеру
Определите поведение в Page Page2Controller
, например:
$scope.goBack = function(){
$location.path("#/");
}
И добавьте некоторую кнопку внутри Page2.html
:
<button ng-click="goBack()">Return</button>
Вам также может потребоваться изменить атрибуты href
для ссылок навигации на #/page2
и #/page3
NavigateBack
в поле зрения. Вы забыли использовать()
или опечатка?