Форум программистов, компьютерный форум, киберфорум
JavaScript: Angular 2, AngularJS
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 03.02.2016
Сообщений: 24
1

Неправильное отображение якорей

26.12.2016, 22:45. Показов 973. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При использовании маршрутизации в angular столкнулся с такой проблемой, когда кликаю по ссылкам с маршрутами типа #/anchor они не срабатывают, потому что в браузерах они кодируются в #!#%2Fanchor. Как это можно исправить? Если я делаю тоже самое, только не используя angular, то все якоря нормально отображаются...
Вот мой пример (angular версии 1.6.0):
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<!DOCTYPE html>
<html ng-app="myApp">
<head>
    <title>Angular Routes Test</title>
    <script type="text/javascript" src="angular.min.js"></script>
    <script type="text/javascript" src="angular-route.min.js"></script>
</head>
<body ng-controller="testController">
    <a href="#/">Home</a>
    <a href="#/test">Test</a>
    <a href="#/anchor">MoreTest</a>
    <div ng-view></div>
 
    <script type="text/javascript">
        var app = angular.module('myApp', ['ngRoute']);
 
        app.config(function($routeProvider){
            $routeProvider
            .when('/', {
                template: '<h1>Home</h1>'
            })
            .when('/test', {
                template: '<h2>Test</h2>'
            })
            .otherwise({
                redirecTo: '/'
            });
        });
 
        app.controller('testController', function($scope){
        });
    </script>
</body>
</html>
Добавлено через 1 час 38 минут
Точнее такое происходит, когда я подключаю angular-route.min.js к странице

Добавлено через 4 часа 57 минут
Аллилуйя! Решил проблему! Кому будет интересно - вот решение:
Интернет подсказывал, что нужно включить html5Mode
Javascript
1
2
3
4
$locationProvider.html5Mode({
                enabled: true,
                requireBase: false
            });
Но после того, как js выполнял эту функцию у меня напрочь отказывался подключаться модуль ngRoute выдавая ошибку.
В одном из многочисленных постов к этой функции прилагалась ещё
Javascript
1
$locationProvider.hashPrefix('!');
Вместе они тоже не работали Т_Т После этого начал совершать абсолютно рандомные действия, после кучи таких действий в определённый момент убрал html5Mode, оставил функцию $locationProvider.hashPrefix('!') в которой убрал восклицательный знак ииии... Оно заработало, понятия не имею почему, если кто-то знает объясните)
В итоге получился во такой js:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var app = angular.module('myApp', ['ngRoute']);
 
        app.config(function($routeProvider, $locationProvider){
            $routeProvider.when('/', {
                template: '<h1>Home</h1>'
            });
            $routeProvider.when('/test', {
                template: '<h2>Test</h2>'
            });
            $routeProvider.when('/route', {
                template: '<h1>MoreTest</h1>'
            });
            /*$routeProvider.otherwise({
                redirectTo: '/'
            });*/
 
            /*$locationProvider.html5mode({
                enabled: true,
                requireBase: true
            });*/
            $locationProvider.hashPrefix('');
        });
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2016, 22:45
Ответы с готовыми решениями:

Неправильное отображение
Всем привет! Подскажите, пожалуйста, в чём я ошибся. Мне нужно при определённом условии вывести...

Неправильное отображение
В Бленде пытаюсь сделать чекбокс. В редакторе выглядит нормально, а в скомпиленной версии нижняя и...

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

Неправильное отображение
Автокад 2012 При масштабировании некоторые модельки неправильно показываются В чем может быть...

1
19 / 19 / 12
Регистрация: 03.10.2016
Сообщений: 107
27.12.2016, 06:04 2
https://docs.angularjs.org/api/ng/service/$anchorScroll
0
27.12.2016, 06:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2016, 06:04
Помогаю со студенческими работами здесь

Неправильное отображение в IE
Тестирую свой первый сайт http://sham62.ru/. Во всех браузерах, кроме IE 11, отображается...

Неправильное отображение в IE
Есть скрипт вкладок, организованный css + js. Структура странички: таблица, а в ней div, который и...

Неправильное отображение тегов
Привет всем! недавно начал знакомиться с Perl и уже проблема! Не правильно отображает теги(не...

Неправильное отображение фона
&lt;nav&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;#&quot;&gt;contact&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#&quot;&gt;portfolio&lt;/li&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru