我在 $ routeProvider 中使用自定义属性来检查是否需要登录,并在 $ routeChangeStart 事件中进行检查。它在正常的URL更改时工作正常,但如果我使用 $ location.path 更改URL,则自定义属性将变为未定义。任何人都知道如何获得自定义属性,即使使用k $ location.path
$routeProvider.when('/result', {
templateUrl: 'partials/result.html',
controller: 'ResultCtrl',
data: {
requireLogin: true
}
});
$rootScope.$on('$routeChangeStart', function (event, next, current) {
var requireLogin = false;
if (next['data']) {
requireLogin = next.data.requireLogin
}
正常重定向(使用锚点href) next.data.requireLogin 正在运行。但是,如果我使用 $ locaion.path 更改网址,则会显示为未定义。
谢谢, Udesh
答案 0 :(得分:1)
您通过 $ location.path 设置的路径可能是错误的?如果路径,我无法找到查找自定义数据对象的任何问题。如果路径与其中一条路线不匹配 - 那么我会得到一个未定义的异常。我也会为下一个添加空检查。
if (next && next['data'])
答案 1 :(得分:1)
问题在于我设置$ location.path()的方式。我正在设置路径
$location.path('/result')
将其更改为
$location.path('result')
做了伎俩......
到处都记录了' /' ...不确定哪一个是正确的方法,但它解决了我的问题..谢谢:)