这是我的问题:由于某种原因,在有效链接上,Angular无法找到我正在寻找的内容并返回404.这是路由配置:
$routeProvider.when('/',{templateUrl: 'partials/home.html'}); $routeProvider.when('/home',{templateUrl: 'partials/home.html'}); $routeProvider.when('/menus',{templateUrl: 'partials/menus.html'}); $routeProvider.when('/menu/:menuId',{templateUrl: 'partials/menu.html',controller: 'ShowMenuCtrl'}); $routeProvider.when('/products',{templateUrl: 'partials/products.html'}); $routeProvider.when('/product/:productId',{templateUrl: 'partials/product.html',controller: 'ShowProductCtrl'}); $routeProvider.when('/drink/:productId',controller: 'ShowProductCtrl'}); $routeProvider.when('/drinks',{templateUrl: 'partials/drinks.html'}); $routeProvider.when('/order',{templateUrl: 'partials/order.html'}); $routeProvider.when('/404',{templateUrl: 'partials/404.html'}); $routeProvider.otherwise({redirectTo: '/404'});
例如:指向/ menu / 45122245的链接(例如< a href =“#/ menu / {[{menu.id}]}”翻译> SEE< / a>)将在我工作时生效在/ menu / view上,但不在/ home /上(并返回404).
使用相同的URL,具有相同ID的相同对象,因此我不知道发生了什么.我不知道是否有任何其他代码可以帮助你,让我知道你需要什么:)
解决方法
可能是我来不及回复这篇文章,但是我相信下面的解决方案应该可以解决问题,
angular.module('moduleName') ..config(['$compileProvider','$routeProvider',function ($compileProvider,$routeProvider) { $routeProvider.when('/',{templateUrl: 'partials/404.html'}); $routeProvider.otherwise({redirectTo: '/404'}); }]) .run(['$location',function ($location) { if ($location.path() === '' && $location.$$absUrl.indexOf('/partials') > -1) { $location.path('/home') } }]);