此代码显示了如何使用指令通过点击'输入'来提交表单。而在textarea。但是,我希望能够切换+进入并转到下一行并按原样提交结果。无论何时提交,它都会显示在同一行中。如何按照用户的意愿在下一行提交和显示提交的文本。
<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);
}
}
});
}
}
});
我该怎么办?
答案 0 :(得分:0)
您似乎需要将\n\r
转换为<br/>
,然后使用ng-bind-html
来清理字符串。
您还必须包含angularjs sanitize js文件:
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular-sanitize.js"></script>