我有一个简单的自定义指令,用于检查和设置其元素上的href
。
但我需要检查从服务器(async)加载的数据的href,以确保用户可以访问该链接(ACL类型)。
那么在这个数据加载完成之前,如何延迟完成工作的链接功能呢?
答案 0 :(得分:0)
好的,我为自己做点什么,感谢任何提高它的指示, 我做了gist
angular.module('myModule')
.factory('dataLoader', ['$http', function ($http) {
var __list = null;
var __request = null;
return function (callbak) {
if (__list)
callbak(__list);
else {
if (!__request)
__request = $http({
method: 'GET',
url: '/myurl',
params: {}
});
__request.success(function (d) {
if (d.data) {
__list = d.data;
callbak(__list);
}
});
}
}
}])
.directive('myDirective', ['dataLoader', function (dataLoader) {
return {
restrict: "A",
compile: function (scope, element, attrs) {
return function (scope, element, attrs) {
dataLoader(function (acl) {
console.log(acl.length);
var href = attrs.myDirective;
if (href) {
if (href[0] != '#')
href = '#' + href;
element.attr('href', href);
}
});
};
}
};
}]);