我在 $routeProvider 中使用自定义属性来检查是否需要登录,并在 $routeChangeStart 事件中检查它。它在正常的 URL 更改上工作正常,但如果我使用 $location.path 更改 URL,则 custom property 将显示为未定义。任何人都知道如何使用 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
}
正常重定向(使用 anchor href)next.data.requireLogin 正在工作。但是,如果我用 $locaion.path 更改 URL,它就会变成未定义的。
谢谢, 乌德什
最佳答案
可能是您通过$location.path 设置的路径 是错误的?如果路径,我找不到找到自定义数据对象的任何问题。如果 path 与其中一条路线不匹配 - 我会得到一个 undefined 异常。我还要为 next 添加空检查。
if (next && next['data'])
关于Angularjs:$routeChangeStart 自定义属性在 $location.path 上未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31067010/