0
我看到這個有很多的指令:僅編譯返回postLink的函數 - 它是否爲反模式?
compile: function(elm, attrs, transclude) {
return function postLink(scope, elm, attrs, tabsetCtrl) {
// do something with transclude function
}
}
,我想確認我的理解,這是一個過時的形式做的事情,因爲角的舊版本沒有transclude在鏈接功能參數 和它的更好(更易讀)現在要做的:
link: function (scope, elm, attrs, tabsetCtrl, transclude) {
// do something with transclude function
}
有當有編譯功能,沒有其他的身體這兩者之間有什麼區別? (我檢查了代碼示例,兩種方式的工作方式都是一樣的,但也許有些東西會導致第一種形式比第二種形式更好)
兩個函數做同樣的事情,並且第一功能不會被棄用。只有在您聲明您的指令被隱藏的情況下才能使用Transclusion。存在鏈接 - >發佈鏈接。只有在需要預鏈接功能時才使用編譯,或者在鏈接函數執行之前需要進行dom轉換。 – igorzg
來自Angular Docs: – Yoorek
不,它不正確 - 來自Angular文檔 「注意:傳遞給編譯函數的transclude函數已被棄用,因爲它例如不知道正確的外部函數。請使用transclude函數而是傳遞給鏈接函數。「 我知道你寫的所有內容,但這不是我的問題的答案。我問實際上爲什麼有人會使用第一種形式,而第二種形式更具可讀性並且執行相同操作。許多人正在使用第一種形式。 – Yoorek