这是我用来检测输入密钥的一些指令
.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);
}
}
});
}
}
})
Run Code Online (Sandbox Code Playgroud)
我有一个function我想得到$event它作为参数.
$scope.test = function(evt){
var el = angular.element(evt.target);
console.log(el[0]);
}
Run Code Online (Sandbox Code Playgroud)
但是当我在内置指令中使用$ event时
<textarea enter-submit="test($event)"></textarea>
Run Code Online (Sandbox Code Playgroud)
它说evt is undefined怎么做?
将你的if改为:
if (!event.shiftKey) {
event.preventDefault();
var enterSubmitFunction = $parse(attrs['enterSubmit']);
enterSubmitFunction(scope, { $event: event });
scope.$apply();
}
Run Code Online (Sandbox Code Playgroud)
你需要注射$parse现在,我不知道,如果你需要使用scope.$parent的enterSubmitFunction或刚scope.试试两个.
| 归档时间: |
|
| 查看次数: |
2049 次 |
| 最近记录: |