0

如果“某事”发生,是否可以重新加载某个路线?

示例:
每次触发此功能时,我都需要重新加载新 ID 的路由

$scope.updateDealer = function(zip, country) {
        if(zip) {
            $http.get('files/framework/dealer/near/'+ zip + '/' + country + '').success(function(data) {
                $scope.dealer = {marker: data};
                $location.path('/dealer/:id').search({id: data.id});
                $rootScope.dealerdetails = data;    
                $route.reload();
        });
        } else {
            $scope.dealer = $scope.loadall();
        }

  }  

路线

when('/dealer/:id', {templateUrl: 'files/tpl/dealer-details.html?26', controller: 'DealerDetailsCtrl', activetab: 'details'}).  

但不知何故,ID 不在 DealerDetailsCtrl 中。

这是对 DealerDetailsCtrl 中数据的调用:

$rootScope.dealerdetails = dealerService.api.get({id: $routeParams.id, token: $scope.token})  

似乎 $routeParams.id 是空的,因此内容没有加载。

谢谢您的帮助。

4

3 回答 3

0

从 angular 1.3 开始,您可以使用它$route.updateParams(newParams)来更改路由参数。

这是来自角度文档的引用...

$route.updateParams(newParams);

使$route服务更新当前 URL,将当前路由参数替换为newParams. 提供的与路线的路径段定义匹配的属性名称将被插入到位置的路径中,而其余属性将被视为查询参数。

在你的情况下,你应该使用这样的东西:

$scope.updateDealer = function(zip, country) {
     if(zip) {
         $http.get('files/framework/dealer/near/'+ zip + '/' + country + '').success(function(data) {
             $scope.dealer = {marker: data};    
             $route.updateParams({id: data.id});
         });
     } else {
         $scope.dealer = $scope.loadall();
     }
}
于 2015-01-21T00:04:50.803 回答
0

如果您访问 /dealer/1 (或任何实际的 id)是 $routeParams.id 为您定义的吗?您所要做的就是:

    $scope.updateDealer = function(zip, country) {
        if(zip) {
            $http.get('files/framework/dealer/near/'+ zip + '/' + country + '').success(function(data) {
                $scope.dealer = {marker: data};
                $rootScope.dealerdetails = data;
                $location.path('/dealer/' + data.id);
            });
        } else {
            $scope.dealer = $scope.loadall();
        }
  }
于 2013-10-18T18:10:42.323 回答
-1

这应该可以解决问题,因为 Angular 监控哈希更改会适当地路由它们:

window.location.hash = 'dealer/data.id';
于 2013-08-12T04:57:59.697 回答