【发布时间】:2014-08-27 14:25:56
【问题描述】:
我有一个带有 Sails JS 后端的 Angular JS 应用程序,并且在路由内部(在 app.js 中)我有:
.state('app.detail', {
url: "/detail",
views: {
'menuContent' :{
templateUrl: "templates/detail.html",
controller: 'UserUpdateCtrl',
resolve: {
auth: ["$q", "userData", function($q, userData) {
var userInfo = userData.getUserInfo();
if (userInfo) {
return $q.when(userInfo);
} else {
return $q.reject({ authenticated: false });
}
}]
},
}
}
})
(这是关注this guide)
现在在同一个文件上,我有 $routeChangeError:
.run(function($rootScope) {
$rootScope.$on("$routeChangeError", function(event, current, previous, eventObj) {
if (eventObj.authenticated === false) {
$location.path("/login");
}
});
在 chrome 上调试时,我看到该函数已定义,但未调用。
我在这里错过了什么?
【问题讨论】:
-
也许你没有
? -
很确定你想要
$stateChangeError... -
好的,它正在调用
$stateChangeError,但eventObj.authenticated变量未定义(eventObj:Object {name: "", url: "^", views: null, abstract: true}) -
假设您使用的是 Angular UI 的路由器而不是官方路由器是否安全?
标签: javascript angularjs sails.js angular-routing