gpt4 book ai didi

angularjs - 指令中的2个 "postLink"函数有什么区别?

转载 作者:行者123 更新时间:2023-12-02 19:17:26 24 4
gpt4 key购买 nike

根据AngularJS的文档,定义指令时,compile中有一个postLinklink<中有一个postLink/

myModule.directive('directiveName', function factory(injectables) {
var directiveDefinitionObject = {
priority: 0,
template: '<div></div>',
templateUrl: 'directive.html',
replace: false,
transclude: false,
restrict: 'A',
scope: false,
compile: function compile(tElement, tAttrs, transclude) {
return {
pre: function preLink(scope, iElement, iAttrs, controller) { ... },
post: function postLink(scope, iElement, iAttrs, controller) { ... }
}
},
link: function postLink(scope, iElement, iAttrs) { ... }
};
return directiveDefinitionObject;
});

他们有什么区别?我注意到 link 中的 postLink 的参数小于 compile 中的参数。还有其他区别吗?

最佳答案

它们没有什么不同,你所拥有的只是文档中的伪代码。 postLink 函数只是最重要的一个,因此有多种声明方式。

这是一个Plunker举个例子...

...这是一些伪代码,显示了 postLink 函数的不同声明:

app.directive('dir1', function () {
return function(scope, elem, attr) {
//this is the same
};
});

app.directive('dir2', function () {
return {
link: function(scope, elem, attr) {
//this is the same
}
};
});

app.directive('dir3', function () {
return {
compile: function compile(tElement, tAttrs, transclude) {
return {
post: function postLink(scope, elem, attrs) {
//this is the same
}
}
}
};
});

...您只需要一个。

关于angularjs - 指令中的2个 "postLink"函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14565121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com