您好我有我的工作,這種「可確定」按鈕指令,angular.js:如何將ngclick從原始dom傳遞到指令的dom?
的HTML代碼,將觸發指令「可證實」
<span confirmable ng-click='users.splice($index,1)'></span>
指令:(CoffeeScript的)
angular.module('buttons',[])
.directive 'confirmable',() ->
template: """
<button class='btn btn-mini btn-danger'>
Destroy
</button>
"""
replace: yes
所以我希望看到這個指令生成的最終結果是
<button class='btn btn-mini btn-danger' ng-click='users.splice($index,1)'>
Destroy
</button>
到目前爲止,我得到了它與鏈接功能工作指令
angular.module('buttons',[])
.directive 'confirmable',() ->
template: """
<button class='btn btn-mini btn-danger'>
Destroy
</button>
"""
replace: yes
link: (scope, el, attrs) -> <---------- linking function
$(el).attr 'ng-click', attrs.ngClick
內,但我已經通過指令文件走了一遍,發現與=,@,&運營商,但我的財產範圍我真的不確定他們是否是我需要的。然後有這個transclude屬性,我仍然需要了解,但目前似乎也沒有幫助。所以雖然我的鏈接功能現在可以做到這一點,但我認爲我應該問問角度是否提供了更優雅的解決方案。
謝謝!
我可以看到這是非常有用的,是各地傳遞的功能是這樣的。但是,只是好奇,你可以將參數傳遞給foo()嗎?以及它將如何滲透到指令? –
是的,你可以傳遞參數。一般情況下,事情會從指令「滴落」到父母,而不是相反。如果您在調用對父函數的引用之前需要對指令進行一些操作,那麼您只需將該調用包裝在指令的控制器聲明中的另一個範圍函數中即可。 –
嗯。不建議重複使用'ng-click',因爲它是衆所周知的?它在你的例子中起作用,但是如果你爲你的指令使用'replace:true'選項,它會中斷。我不知道爲什麼。 = [ – Langdon