我正在学习AngularJS,有一件事让我很烦.
我用来$routeProvider
为我的应用程序声明路由规则:
$routeProvider.when('/test', {
controller: TestCtrl,
templateUrl: 'views/test.html'
})
.otherwise({ redirectTo: '/test' });
Run Code Online (Sandbox Code Playgroud)
但是当我在浏览器中导航到我的应用程序时,我看到了app/#/test
而不是app/test
.
所以我的问题是为什么AngularJS将此哈希添加#
到网址?有没有可能避免它?
我上AngularJS项目的网址已经从localhost:3000/admin#/
到localhost:3000/admin#!/
自从上次我在我的项目工作...
没有在网上找到任何东西,有人知道这是什么?
这是我app.js
在AngularJS中的路由文件
var app = angular.module('myApp', ['ngRoute', 'ngAnimate', 'toaster']);
app.config(['$routeProvider',
function ($routeProvider) {
$routeProvider.
when('/login', {
title: 'Login',
templateUrl: 'resources/views/layouts/loginUser.php',
controller: 'authCtrl'
})
.when('/', {
title: 'Login',
templateUrl: 'resources/views/layout/login.php',
controller: 'logoutCtrl'
})
.when('/reset', {
title: 'Reset Password',
templateUrl: 'resources/views/layouts/forgetPassword.php',
controller: 'authCtrl'
})
.when('/invalidtoken', {
title: 'Login',
templateUrl: 'resources/views/layout/invalidtoken.php',
controller: 'authCtrl',
role: '0'
})
//$locationProvider.html5Mode(true);
}])
.run(function ($rootScope, $location, Data, $http) {
$rootScope.$on("$routeChangeStart", function (event, next, current) {
var nextUrl = next.$$route.originalPath;
if (nextUrl == '/signin' || nextUrl == '/login' …
Run Code Online (Sandbox Code Playgroud) 我从基金会复制了以下内容以获得Off Canvas子菜单:
<li class="has-submenu">
<a href="#">Foo</a>
<ul class="left-submenu">
<li class="back"><a href="#">Back</a></li>
<li><label>Level 1</label></li>
<li><a href="#">Link 1</a></li>
</ul>
</li>
Run Code Online (Sandbox Code Playgroud)
当我点击'Foo'时,子菜单没有出现,我转到我的主页.我相信,因为链接是#
,这是Angular使用的.有没有办法改变基金会#
在这种情况下的使用,以使子菜单工作?
我在Angular中使用Laravel 5。
默认情况下,Angular添加/#/
到URL。
我不喜欢它,/#/
所以我$locationProvider.html5Mode(true);
从Angular中删除了它。
现在,每当我尝试访问Angular URL时,Laravel都会拒绝重定向我,而是导致错误提示NotFoundHttpException
:
抱歉,找不到您要查找的页面。
RouteCollection.php第161行中的NotFoundHttpException:
这是非常合乎逻辑的,因为未在Laravel的路由文件中定义该路由。
如何解决呢?
更多细节:
http://whatever.app/#/dashboard/home
一切工作正常(laravel知道这是Angular路线,然后Angular删除了#,因此URL变得http://whatever.app/dashboard/home
没有错误)。http://whatever.app/dashboard/home
Laravel时显示错误NotFoundHttpException
。