在使用ngRoute的Angular v1.4.8应用程序中,我有一个解决方案,我希望在自定义指令的链接功能中访问。
根据文件:
为了更方便地从模板访问已解析的依赖项, 解析地图将在路线的
scope
下方提供$resolve
(默认情况下)或resolveAs
指定的自定义名称 属性。
...我的自定义指令链接函数中的$resolve
属性尚未定义scope
- 即使我在观察更改时也是如此。
$resolve
为什么scope
无效?
代码:(JSFiddle)
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
});
}
};
}
答案 0 :(得分:3)
此段落在1.5版本的文档中,但不在您正在使用的1.4.x版本的文档中。所以这是1.5中的新内容。