当用户在输入textbox
后按回车键时,内容应该推送到其他模型,textarea
应该清除:
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>
JS
function MyCtrl($scope) {
$scope.messages = [];
$scope.addMessage = function(e) {
if (e.keyCode != 13) return;
$scope.messages.push({body: $scope.msg});
$scope.msg = "";
}
}
但是,$scope.msg = ""
会离开换行符,以便下一条消息从另一条空行textarea
的第二行开始。我怎样才能完全清除它并在第一行开始下一个输入?这是一个fiddle来演示,这里是一个非角度的related question。
答案 0 :(得分:3)
一旦执行了事件处理程序(并清除了textarea),就会触发默认的事件处理机制 - 从按Enter键添加换行符。您应该阻止处理程序中的默认值(e.preventDefault()
):fiddle
编辑:似乎问题已在您提到的链接中得到解答。