当相同的路由重新加载时,angular resolve reload

时间:2016-02-18 17:20:24

标签: javascript angularjs

如何通过重新加载重新加载Angular解决方案?

我的代码:

SELECT  *
FROM    (SELECT *,
                ROW_NUMBER() OVER (PARTITION BY DriverID,StartTime ORDER BY InsertTS DESC) RowNum
         FROM   MyTable
        ) t
WHERE   RowNum = 1

重新加载功能:

.when('/dashbord', {
    title: 'dashbord',
    templateUrl: 'views/dashbord.php',
    controller: 'dashbordController',
    resolve: {
        getDashbord: function (getDashbordService) {
            return getDashbordService;
        }
    }
})

以上功能仅重新加载视图。它没有重新加载决心。

我怎么能以角度来做?

2 个答案:

答案 0 :(得分:1)

我为您创建了显示

plunker
$route.reload()

触发解决状态

答案 1 :(得分:0)

我知道这是一个迟到的答案,但有一点要记住,Angular服务是单例 - 这意味着如果您将解析函数定义为服务(尤其是一个发出$http请求的服务),每次路线结算时,你都会得到相同的结果。

例如,这会使用一个提出$http请求的Angular服务,并且不会在$http上发出新的$route.reload()请求:

angular.module('myApp').factory('getDashboardService', ['$http', function getDashboardService($http) {
    return $http.get('/path/to/resource'); // returns a promise
}]).config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/dashboard', {
        title: 'dashboard',
        templateUrl: 'views/dashboard.php',
        controller: 'DashboardController',
        resolve: {
            getDashbord: 'getDashboardService' // refers to an Angular service
        }
    });
}]);

...但这会,因为它不是注入的服务:

angular.module('myApp').config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/dashboard', {
        title: 'dashboard',
        templateUrl: 'views/dashboard.php',
        controller: 'DashboardController',
        resolve: {
            getDashboard: ['$http', function($http) {
                return $http.get('/path/to/resource');
            }]
        }
    });
});

这是一个JSFiddle:https://jsfiddle.net/sscovil/77ys9hz5/