一尘不染

textarea中的AngularJS格式数组值

angularjs

我有一个angularJS应用程序,其中有一个数组。

  $scope.data[0] =  x1;
  $scope.data[1] =  x2;

和一个文本区域

  <textarea ng-model="data"> </textarea>

我可以看到textarea包含值x1,x2(用逗号分隔)。我想在单独的行上显示值。意味着所有数组值都应由换行符而不是逗号分隔。我需要为此编写过滤器吗?


阅读 330

收藏
2020-07-04

共1个答案

一尘不染

您可以编写一条指令来修改ng-model如何将变量转换为输入值并返回。我只是在脑海中写下这些,所以我不知道它是否正确,但是类似的事情可能会做到:

app.directive('splitArray', function() {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function(scope, element, attr, ngModel) {

            function fromUser(text) {
                return text.split("\n");
            }

            function toUser(array) {                        
                return array.join("\n");
            }

            ngModel.$parsers.push(fromUser);
            ngModel.$formatters.push(toUser);
        }
    };
});

您可以像这样使用它:

  <textarea ng-model="data" split-array> </textarea>
2020-07-04