我知道它远非一个最佳实践,但我真的想了解什么是错的。 我编写了以下代码,以区分Enter和shift + Enter,并运行"代码"我需要:
ng-keyup="($event.keyCode == 13 && !$event.shiftKey)
?
[$event.preventDefault(),
commentCtrl.edit(comment.id, comment.text),
comment.edit=false, comment.text]
:
return"
当我按回车键时,我仍然会在文字中添加一个\ n :(
请帮助!〜
答案 0 :(得分:1)
将此内容写入您的HTML
<input type="text" ng-keypress="restrictInput($event)" />
$scope.restrictInput=function(e)
e.prevenDefault();
}
答案 1 :(得分:0)
最终编写了一个阻止它的指令......
(function() {
'use strict';
angular
.module('PreventEnterDrc', [])
.directive('preventEnter', function () {
return {
restrict: 'A',
link: function(scope, element) {
element.bind('keydown keypress keyup', function (event) {
if(event.keyCode == 13 && !event.shiftKey){
event.preventDefault();
}
});
}
};
})
;
})();
答案 2 :(得分:0)
啊哈!您有“错误”指令!我刚刚将我的应用程序从ng-keyup更改为ng-keypress,现在$ event.preventDefault()可以正常工作。希望这可以帮助。我为此挠了很久。
答案 3 :(得分:-1)
请尝试以下操作。
ng-keyup="handleKeyup($event);"
在你的控制器中,
$scope.handleKeyup = function($event) {
//write your logic here.
}