2016-06-28 52 views
0

此代碼顯示如何使用指令在textarea中按'enter'來提交表單。但是,我希望能夠轉移+進入下一行並按照原樣提交結果。無論何時提交,都顯示在同一行中。如何按照用戶的意願提交併顯示下一行中的提交文本。Shift +在使用AngularJS在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

它看起來像你需要將\n\r轉換成<br/>然後使用ng-bind-html消毒字符串。

這裏是一個code example

您還必須包括angularjs消毒js文件: <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular-sanitize.js"></script>

相關問題