大佬教程收集整理的这篇文章主要介绍了AngularJS指令:链接和编译功能是否意味着一起工作?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
让我说我有这个指令:
.directive('Hello',function () { return { template: '<div>Hello <span ng-transclude></span></div>',reStrict: 'E',transclude: true,compile: function() { console.log('Compile()'); return { pre: function() { console.log('PreLink()'); },post: function() { console.log('PostLink()'); } }; },link: function postLink(scope,element,attrs) { console.log('Link()'); } }; }
我把它添加到我的模板:
<Hello>World</Hello>
控制台日志:
Compile() PreLink() PostLink()
那么为什么不调用link()呢?
如果不是从compile()返回一个对象,我返回一个单一的函数打印PreLink()控制台日志:
Compile() PreLink()
如果我不从Compile()返回任何东西的控制台日志:
Compile()
仍未链接()。
如果我只是评论Compile(),然后Link()终于打印:
Link()
有人可以解释这一切吗? Link()和Compile()是否一起工作?我应该使用COR_408_11845@pile的PreLink()和PostLink()?
在指令定义对象中,如果你只定义链接,这就像在postLink函数中使用一个带有空的preLink函数的空编译函数和你的代码的速记。一旦你定义了编译,链接被角度忽略,因为编译应该返回链接函数。
如果你只从编译返回一个函数,那么它将被执行post link。
以上是大佬教程为你收集整理的AngularJS指令:链接和编译功能是否意味着一起工作?全部内容,希望文章能够帮你解决AngularJS指令:链接和编译功能是否意味着一起工作?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。