所以我知道你可以在一個指令中獲得一個函數來觸發一個控制器中的函數(見:AngularJS - pass function to directive),然而,現在我正在嘗試稍微獲得一些東西不同。我試圖讓一個控制器中的函數激發指令中的控制器內的一個函數(在指令中處理)。所以我點擊指令外的控制器按鈕,它會在指令內激發一個函數。角度,從指令控制器中的控制器觸發一個功能
這是我曾嘗試
的指令:
<div cengage-file-editor content="XmlContent" request-now="changeXml()"></div>
外部控制器的功能:
$scope.changeXml = function(){
//fire function inside directive controller?
};
功能
return {
restrict: 'A',
replace: true,
controller: EditorCtrl.componentName,
scope: {
content: '=',
requestNow: '@'
},
templateUrl: 'editor.html'
};
在使用該指令該指令控制器內:
$scope.changeXml = function(){
console.log("hit");
}
所以基本上,我希望用戶已經打響了changeXml功能(指令之外),並把它發送到指令並連接和消防的功能在裏面。不知道如何做到這一點,會喜歡一些幫助。謝謝!
指令應該是有些自包含的,所以我不認爲這是指令的一個很好的用例。相反,你可以創建一個服務來執行你需要的功能,並將這個服務注入到兩個控制器中。 – 2015-04-01 19:50:38