这是我用于检测回车键的一些指令
.directive('enterSubmit', function() {
return {
restrict: 'A',
link: function(scope, elem, attrs) {
elem.bind('keydown', function(event) {
var code = event.keyCode || event.which;
if (code === 13) {
if (!event.shiftKey) {
event.preventDefault();
scope.$apply(attrs.enterSubmit);
}
}
});
}
}
})
我有一个function
我想获取$event
的参数。
$scope.test = function(evt){
var el = angular.element(evt.target);
console.log(el[0]);
}
但是当我在内置指令中尽可能使用$ event时
<textarea enter-submit="test($event)"></textarea>
它说evt is undefined
怎么办?
将您的if更改为此:
if (!event.shiftKey) {
event.preventDefault();
var enterSubmitFunction = $parse(attrs['enterSubmit']);
enterSubmitFunction(scope, { $event: event });
scope.$apply();
}
您需要立即进行注入$parse
,但我不确定是否需要scope.$parent
在enterSubmitFunction
或中使用scope
。尝试两者。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句