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