Javascript AngularJS意外地在textarea中留下换行符
当用户在myJavascript AngularJS意外地在textarea中留下换行符,javascript,angularjs,Javascript,Angularjs,当用户在my文本框中键入后按return键时,应将内容推送到其他型号,并且文本区域应清除: HTML <div ng-controller="MyCtrl"> <ul><li ng-repeat="msg in messages">{{msg.body}}</li></ul> <textarea ng-model="msg" ng-keydown="addMessage($event)"></textarea&
文本框中键入后按return键时,应将内容推送到其他型号,并且文本区域应清除:
HTML
<div ng-controller="MyCtrl">
<ul><li ng-repeat="msg in messages">{{msg.body}}</li></ul>
<textarea ng-model="msg" ng-keydown="addMessage($event)"></textarea>
</div>
但是,$scope.msg=”“
保留换行符,以便下一条消息从另一个空文本区域的第二行开始。我如何才能完全清除它并在第一行开始下一个输入?这是一个要演示的,这是一个非角度的。一旦您的事件处理程序被执行(并且您清除了文本区域),默认的事件处理机制将被触发-这将通过按enter键添加换行符。您应该防止处理程序中出现默认值(e.preventDefault()
):
编辑:这个问题似乎已经在您提到的链接中得到了回答。打得好,出于某种原因,我认为返回false
会实现这一点,并认为这是另一个问题。谢谢<由于angularjs将您提供的函数包装在自己的事件处理程序中,因此代码>返回false
可能无法完成此操作(如果执行此操作,则不会返回false
)
function MyCtrl($scope) {
$scope.messages = [];
$scope.addMessage = function(e) {
if (e.keyCode != 13) return;
$scope.messages.push({body: $scope.msg});
$scope.msg = "";
}
}