2015-12-06 120 views
1

如何通過指令屬性而不是獨立作用域來調用函數。我知道可以用$parselink通過指令屬性傳遞函數

例如:

<my-directive on-start="foo(query)> </my-directive> 

我想調用該函數在控制器中。

感謝

回答

3

隨着範圍$ EVAL:

directive('myDirective', function() { 
    return { 
    link: function(scope, element, attrs) { 
     element.on('click', function() { 
     scope.$eval(attrs.onStart); 
     }); 
    } 
    } 
}); 
+0

謝謝您的回答。在指令中我有一個輸入文本和一個按鈕,我希望onStart基金會在點擊按鈕的功能之前開始(而不是單擊元素時)。 –

+2

然後,從'element.on'塊中取出'scope。$ eval'。它將在指令被評估時立即運行。 – casraf