Javascript 通过Angularjs解析数据时,如何触发渲染模板

Javascript 通过Angularjs解析数据时,如何触发渲染模板,javascript,angularjs,Javascript,Angularjs,我可以像这样在控制器中调用第一次加载 function RankCtrl($scope, $route, $routeParams, Rank) { $scope.leagues = Rank.query($routeParams) } 当路由更改时,我使用resolve从服务器加载数据。 (更改路由只是对服务器的json请求,所以页面中不会刷新任何内容。) 我可以看到数据是通过chrome开发工具从服务器上正确检索的 但数据去了哪里?我希望将该数据分配给$scope.leagues,并

我可以像这样在控制器中调用第一次加载

function RankCtrl($scope, $route, $routeParams, Rank) {
   $scope.leagues = Rank.query($routeParams)
}
当路由更改时,我使用resolve从服务器加载数据。 (更改路由只是对服务器的json请求,所以页面中不会刷新任何内容。)

我可以看到数据是通过chrome开发工具从服务器上正确检索的

但数据去了哪里?我希望将该数据分配给$scope.leagues,并希望根据新数据更新视图(模板)

我还尝试在(“$routeChangeSuccess”)上使用
$scope.$on
事件,但这会全局触发所有路由更改,不仅限于此控制器

$scope.$on('$routeChangeSuccess', function(next, current) { 
  $scope.leagues = Rank.query($routeParams);
});

任何帮助都将不胜感激。

您需要在
RankCtrl
中插入解析属性(
leagues
)的名称

更新:

根据角度版本,您可能需要手动构造和解析promise对象:

/* ... */
resolve: {
  leagues: function($route, $q, Rank) {
    var deferred = $q.defer();
    return Rank.query($route.current.params, function(leagues){
      deferred.resolve(leagues);
    });
    return deferred.promise;
  }
}

乍一看,您的
解析
似乎没有返回任何内容。我只是尝试添加返回秩。query(…),仍然相同,@dcodemithis还有其他需要更改的内容吗?我收到
错误:[$injector:unpr]未知提供程序:联盟提供程序您是否有可能在视图中的任何位置使用
RankCtrl
ng controller
指令?我有
,需要更改吗?当然。当使用$routeProvider将控制器分配给视图和路由时,您不需要也不能对同一控制器使用
ng controller
指令。我使用的是谷歌CDN的1.2.6。我将解析代码更改为您提供的代码。对于
,只需
,我需要更改什么?
function RankCtrl($scope, $route, $routeParams, leagues) {
   $scope.leagues = leagues;
}
/* ... */
resolve: {
  leagues: function($route, $q, Rank) {
    var deferred = $q.defer();
    return Rank.query($route.current.params, function(leagues){
      deferred.resolve(leagues);
    });
    return deferred.promise;
  }
}