ฉันต้องการสร้างคำสั่งที่เชื่อมโยงไปยังแอตทริบิวต์ แอตทริบิวต์ระบุฟังก์ชันที่ควรเรียกใช้ในขอบเขต แต่ฉันยังต้องการส่งอาร์กิวเมนต์ไปยังฟังก์ชันที่กำหนดภายในฟังก์ชันลิงก์
<div my-method='theMethodToBeCalled'></div>
ในฟังก์ชันลิงค์ฉันเชื่อมโยงกับเหตุการณ์ jQuery ซึ่งส่งผ่านอาร์กิวเมนต์ที่ฉันต้องการส่งผ่านไปยังฟังก์ชัน:
app.directive("myMethod",function($parse) {
restrict:'A',
link:function(scope,element,attrs) {
var expressionHandler = $parse(attrs.myMethod);
$(element).on('theEvent',function( e, rowid ) {
id = // some function called to determine id based on rowid
scope.$apply(function() {expressionHandler(id);});
}
}
}
app.controller("myController",function($scope) {
$scope.theMethodToBeCalled = function(id) { alert(id); };
}
โดยไม่ต้องผ่าน id ฉันสามารถทำให้มันใช้งานได้ แต่ทันทีที่ฉันพยายามส่งอาร์กิวเมนต์ฟังก์ชันจะไม่ถูกเรียกอีกต่อไป