Javascript 角度定向链接函数从不运行
我遵循ng bbok的教程,在指令定义中插入一个空的Javascript 角度定向链接函数从不运行,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我遵循ng bbok的教程,在指令定义中插入一个空的compile函数,然后插入link函数。这样,链接函数中的代码就永远不会执行。最后我发现这是因为空的编译函数,当我神奇地删除它时,链接被执行了。为什么会这样?我使用Angular 1.3 { compile:function(){}, 链接:函数($范围、元素、属性){ 变量大小=attributes.gravatarSize | | 80; var hash=md5.digest_s($scope.email.from[0]); $scop
compile
函数,然后插入link
函数。这样,链接
函数中的代码就永远不会执行。最后我发现这是因为空的编译
函数,当我神奇地删除它时,链接
被执行了。为什么会这样?我使用Angular 1.3
{
compile:function(){},
链接:函数($范围、元素、属性){
变量大小=attributes.gravatarSize | | 80;
var hash=md5.digest_s($scope.email.from[0]);
$scope.gravatarImage=url+hash+'?size='+size;
}
}
您不能同时定义编译
属性和链接
。如果要使用compile
函数,可以返回链接函数:
compile: function() {
return function($scope, element, attributes) {
var size = attributes.gravatarSize || 80;
var hash = md5.digest_s($scope.email.from[0]);
$scope.gravatarImage = url + hash + '?size=' + size;
}
}
或同时定义pre
和post
(链接)功能:
compile: function compile(tElement, tAttrs, transclude) {
return {
pre: function preLink(scope, iElement, iAttrs, controller) { ... },
post: function postLink(scope, iElement, iAttrs, controller) { ... }
}
}
检查它是按设计进行的。引述: 链接 仅当未定义compile属性时,才使用此属性