Я пытаюсь комбинировать угловые объекты с fullpage.js на index.page. Кроме того, все еще есть некоторые страницы, которые обычно отображаются по маршруту.angularjs с привязкой и маршрутизацией fullpage.js (комплекс)
Вот мой маршрут в app.js
app.config(['$routeProvider', '$httpProvider', '$locationProvider', function($routeProvider, $httpProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
// Below are all sections at index page
.when('/#index', {
controller: 'WelcomeCtrl',
templateUrl: 'views/welcome/index.html'
})
.when('/#products', {
})
.when('/#learn', {
})
.when('/#help', {
})
.when('/#contact', {
})
// Other pages not using fullpage.js
.when('/cases', {
controller: 'CasesCtrl',
templateUrl: 'views/welcome/cases/index.html'
})
.when('/users', {
controller: 'UsersCtrl',
templateUrl: 'views/users/login.html'
})
.otherwise({
redirectTo: '/'
});
});
Однако, когда я прокручиваю секции по индексу, каждый называет свое первое правило маршрутов, а затем отображает страницу индекса, хотя секция была правильно прокручивается до.
Кроме того, правила маршрута с хэш-тегами, кажется, не работают при настройке html5Mode true, я получил URL-адреса, чтобы стать http://xxx/%23products, как решить эту проблему?
Спасибо.
это не сработает. Угловые (и большинство других рамок SPA) используют '#' внутренне. Угловой будет продолжать использовать хэш для обратной совместимости даже при включенном html5Mode (поэтому ваши URL-адреса дезинфицируются). Угловой предоставляет сервис '$ anchorScroll' для случаев, когда вы должны использовать традиционные привязки в содержимом страницы, но вы не можете комбинировать' $ anchorScroll' с другой библиотекой JS (по крайней мере, насколько мне известно). Вы ** определенно ** не можете использовать другие JS-библиотеки, которые ожидают, что хэш не будет изменен угловым. – Claies
@ Claies, спасибо за ваш комментарий. На самом деле, я еще не использовал $ anchorScroll, потому что он обычно связывается с ng-click и $ location.hash(); однако, поскольку fullpage.js прокручивает раздел с #xxx, я не могу просто использовать щелчок, чтобы решить эту проблему. Возможно, мне нужно добавить правило маршрута, которое может игнорировать путь, например, «/ # products». Но я попытался написать это правило в «/ ## products,/\ # products», оба они не работают ... –
Мне было бы интересно узнать, придумали ли вы решение, но от всего Я знаю, что нет способа оставить хеш-маршруты неизменными. Было много попыток, но никаких успехов, о которых я когда-либо слышал. – Claies