Angularjs Angular ngRoute:为什么$resolve在指令链接函数中的作用域上不可用?

Angularjs Angular ngRoute:为什么$resolve在指令链接函数中的作用域上不可用?,angularjs,ngroute,resolve,Angularjs,Ngroute,Resolve,在我的Angular v1.4.8应用程序使用中,我有一个带有解析的路由,我希望在自定义指令的链接函数中访问该路由 根据文件: 为了更方便地从模板访问已解析的依赖项 解析地图将在路线的范围下提供 $resolve(默认)或由resolveAs指定的自定义名称 财产 …然而,$resolve在自定义指令的link函数中的范围属性上未定义,即使在我查看它的更改时也是如此 为什么$resolve在范围上不可用 代码:() angular.module('myApp',['ngRoute'])) .co

在我的Angular v1.4.8应用程序使用中,我有一个带有解析的路由,我希望在自定义指令的链接函数中访问该路由

根据文件:

为了更方便地从模板访问已解析的依赖项 解析地图将在路线的
范围
下提供
$resolve
(默认)或由
resolveAs指定的自定义名称
财产

…然而,
$resolve
在自定义指令的link函数中的
范围
属性上未定义,即使在我查看它的更改时也是如此

为什么
$resolve
范围上不可用

代码:()

angular.module('myApp',['ngRoute']))
.config(routeConfig)
.directive('myDirective',myDirective)
;
函数routeConfig($routeProvider){
$routeProvider
。当(“/”{
决心:{
数据:函数($q){
var deferred=$q.deferred();
递延。决议(“foo”);
回报。承诺;
}
},
模板:“”
})
。否则(“/”)
;
}
函数myDirective($route){
返回{
链接:功能(范围、IELENT、iAttrs){
console.log($route.current.locals);//包含数据
console.log(scope.resolve);//未定义
范围$watch(函数(){
返回范围。$resolve;
},函数(newValue){
console.log(newValue);//未定义,从不更改
});
}
};
}

本段在1.5版本的文档中,但不在您正在使用的1.4.x版本的文档中。因此,它是1.5中的新功能。

相关拉动请求(标记为1.5.0-rc.0):我想阅读正确版本的手册会有所帮助。非常感谢。
angular.module('myApp', ['ngRoute'])
  .config(routeConfig)
  .directive('myDirective', myDirective)
;

function routeConfig($routeProvider) {
  $routeProvider
    .when('/', {
      resolve: {
        data: function($q) {
          var deferred = $q.defer();
          deferred.resolve('foo');
          return deferred.promise;
        }
      },
      template: '<my-directive></my-directive>'
    })
    .otherwise('/')
  ;
}

function myDirective($route) {
  return {
    link: function(scope, iElement, iAttrs) {
      console.log($route.current.locals); // contains data
      console.log(scope.$resolve); // undefined
      scope.$watch(function() {
        return scope.$resolve;
      }, function(newValue) {
        console.log(newValue); // undefined, never changes
      });
    }
  };
}