gpt4 book ai didi

javascript - 解析不起作用,模板正在加载 - AngularJS

转载 作者:行者123 更新时间:2023-12-03 11:59:03 25 4
gpt4 key购买 nike

以下是我的 $routeProvider 代码 -

  $routeProvider
.when("/login", {
template: JST["app/templates/login"],
controller: "LoginController",
})
.when("/dashboard", {
template: JST["app/templates/dashboard"],
controller: "DashboardController",
resolve:{
getUser: function(UserService) {
return UserService.chkUser()
}
}
})
.otherwise({ redirectTo: function() {window.location = "/login";} });

$locationProvider.html5Mode(true);
});

以下是我的UserService代码 -

angular.module("app").factory("UserService", function($http, $q, User) {
return {
chkUser: function() {
var defer = $q.defer();

defer.resolve(false);
return defer.promise;
// Also tried -
// window.location = "/login";
}
};
});

问题 -

现在当我导航到 http://example.com/dashboard 时在浏览器中,我预计会在“/login”处重新登录,但我没有,让我知道我对 angularJS 中的 resolve 用法有什么错误。

最佳答案

好吧,您的解析工作正常,如果您将 getUser 注入(inject) DashboardController,它的值应该是 false。因为您立即用 false 值解决了 promise 。

尝试这样的事情:

angular.module("app").factory("UserService", function($http, $q, User, $location) {
return {
chkUser: function() {
var defer = $q.defer();
$http(...., function(user){
if(user){
defer.resolve(user);
}else{
defer.reject();
$location.path('/login');
}
});
return defer.promise;
}
};
});

或者创建一个重现问题的 fiddle ,这样我们就可以看看并触摸那个 fiddle 。

关于javascript - 解析不起作用,模板正在加载 - AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25484493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com