0
このコードは、テキストエリア内で「入力」を押すことによってフォームを送信するためのディレクティブの使用方法を示しています。しかし、私はshift + enterをして次の行に行き、結果をそのまま提出したいと考えています。提出が行われるたびに、それは同じ行に表示されます。ユーザーが意図したとおりに、次の行に送信されたテキストを提出して表示するにはどうすればいいですか?AngularJSを使用してShift + Enterを押します。
<div ng-app="testApp" ng-controller="MyController">
<textarea ng-model="foo" enter-submit="submit()"></textarea><br/>
Last submitted text: {{ lastSubmitted }}<br/>
</div>
AngularJSコード:
var app = angular.module('testApp', []);
function MyController($scope) {
$scope.foo = ""
$scope.lastSubmitted = ""
$scope.submit = function() {
$scope.lastSubmitted = $scope.foo;
}
}
app.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);
}
}
});
}
}
});
私は何をすべき?