Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS意外地在textarea中留下换行符_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS意外地在textarea中留下换行符

Javascript 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&

当用户在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>
</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 = "";
  }
}