[英]How to call angular controller scope function from directive with parameters?
這與堆棧上的其他問題略有不同,我需要使用僅在我的指令中存在的參數來調用我的控制器函數。
指令(標記):
<div do-something="doSomething(x)"></div>
指令(js):
var directive = function () {
return {
restrict: 'EA',
templateUrl: '/angular/node-for-detail.html',
scope: {
doSomething: '&'
}
}
};
標記內部指令:
<span ng-click="doSomething('im not resolving')"></span>
控制器內的功能:
$scope.doSomething = function(myVar) { //myVar is null };
所以問題是,在指令param.abs里面解決得很好,但是在調用范圍函數里面,參數是null! 我究竟做錯了什么? 我怎樣才能獲得參數來完成它?
您需要確定將在標記中指定的函數的參數的標准名稱(在您的示例中,您使用了x
)。 然后你可以在指令的隔離范圍中創建一個函數,它將調用doSomething()
方法,如下所示:
指令鏈接功能:
$scope.runCallback = function (param) {
$scope.doSomething({x: param});
}
然后只需將指令內的標記更改為:
<span ng-click="runCallback('im not resolving')"></span>
現在你的標記調用( <div do-something="doSomething(x)"></div>
)和控制器內的函數將正常工作。
嘗試在指令中替換你的標記,如下所示:
<span ng-click="doSomething()('im not resolving')"></span>
和指令標記:
<div do-something="doSomething"></div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.