javascript - $urlRouterProvider.when() 内的 Angular-UI Resolve Promise 对象

标签 javascript angularjs promise angular-ui-router

我正在尝试在 module.config() 对象中设置一些基本的应用程序数据,只有当用户使用附加到特定条目的唯一键点击应用程序时,我才会这样做点,否则我的状态将以​​不同的响应解决。

我正在使用 $urlRouterProvider.when(),在指定的入口点捕获用户,然后解析 promise ($http.get()) ,然后返回状态。但似乎无法让它发挥作用。数据本身确实返回了,但函数没有返回路径,我不明白为什么。

$urlRouterProvider.when('/hi/:userkey',function($match,$rootScope, $http){
        $http.get('http://api.com/login/'+$match.userkey)
            .success(function(result){
                $rootScope.data = result;
                  return '/home';
            })

        });

我还尝试在 .then() 中设置返回值:

.then(function(){
    return '/home';
})

我没有收到任何错误,但没有处理返回值。

最佳答案

所以,我觉得这不是最好的答案,但现在有一些人问我是否找到了解决方案,我确实通过激活所需状态而不是返回它的路线来让它工作。然而,我不想接受这个答案,因为我觉得 esalija 的答案应该有效,而且我正在尝试将测试放在一起看它是否真的是 ui.router 的错误。在那之前,这绝对有效,而且在我的脑海中,至少对于一个小应用程序来说,它不会花费你太多。

$urlRouterProvider.when('/hi/:userkey',function($match, $http, Api, $state){
        return $http.get('http://api.site.com/index.php/login/'+ $match.userkey).success(function(result){

            Api.userkey = $match.userkey;
            Api.appdata = result;
           
        }).then(function(){
            $state.go('app');
        });

您可以在我的 devsite/#/hi/5300e0ce9dfb8 上试用

编辑

我想我应该觉得这样做很脏,这与模块本身完成的方式相同:

$urlRouterProvider.when(state.url, ['$match', '$stateParams', function ($match, $stateParams) {
    if ($state.$current.navigable != state || !equalForKeys($match, $stateParams)) {
        $state.transitionTo(state, $match, false);
    }
}]);

关于javascript - $urlRouterProvider.when() 内的 Angular-UI Resolve Promise 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21667838/

相关文章:

javascript - 将变量从 Promise 转移到 Promise

javascript - 在 promise 中,回调顺序是否有保证?

javascript - 在 if 语句中写入多个 "or"条件的更短方法

javascript - 如何在事件处理程序中过滤掉子元素事件?

javascript - 为什么在 karma 中,当我将一个伪数组传递给一个函数时,我返回的是未定义的?

javascript - AngularJS - 使用指令调用回调函数?

javascript - 为什么我的 do..while 循环没有正确执行异步等待代码中的 setTimeout?

javascript - Angular : How to update controller scope associated to directive scope's object as it changes?

php - json - 括号问题

javascript - 在指令中分配给 $watch 之外的隔离范围对象会产生不可预测的行为