1

我试图延迟控制器的加载,直到我的 AJAX 请求返回特定项目。在每个控制器中,我定义了路由和控制器,例如:

define(['app'], function(app){

  app.config(["$routeProvider", function($routeProvider) {
      $routeProvider.when('/app-builder/:id', {
          templateUrl: 'views/app-builder.html',
          controller: 'AppBuilderCtrl',
          resolve: {
              resolvedVal: function($routeParams, AppsModel) {
                  return AppsModel.findOne($routeParams.id);
              }
          }
      });
  }]);

  app.controller('AppBuilderCtrl',  [function() { .... }]);

});

问题是调用时$routeParams没有属性。我在这里想念什么?如果这不是正确的方法,那是什么?idresolvedVal

4

1 回答 1

3

根据以下文档resolve

请注意,ngRoute.$routeParams 仍将引用这些解析函数中的先前路由。改为使用 $route.current.params 来访问新的路由参数。

这应该有效:

  resolve: {
      resolvedVal: function($route, AppsModel) {
          return AppsModel.findOne($route.current.params.id);
      }
  }
于 2013-11-25T20:35:28.083 回答