AngularJS 给 directive scope 绑定的 function 传参
如果我们想要给directive的scope中绑定的方法传递参数,需要传递对象,而不是直接传值。
举个栗子,这里的clickOutside是从用的地方传入的一个方法,debug时我们会发现绑进来的clickOutside
并不是我们传的clickOutSideAction
。
1 | app.directive('clickOutSide', ['$document', function($document) { |
1 | <div data-click-out-side click-Outside="$ctrl.clickOutSideAction()"></div> |
如果需要在这里给clickOutSideAction传参数,应该这样改:
1 | app.directive('clickOutSide', ['$document', function($document) { |
1 | <div data-click-out-side click-Outside="$ctrl.clickOutSideAction(event)"></div> |
好处是在实际使用directive的地方,不需要考虑参数列表顺序,只需要保证参数名称正确。