Angularjs:在TextArea中使用新行打印数组模型

时间:2014-08-22 21:38:05

标签: javascript html arrays angularjs textarea

我有一个简单的textarea控件,

<div ng-controller="TodoCtrl">
      <textarea ng-model="myArray"></textarea>
  </div>

和一个字符串数组的模型:

function TodoCtrl($scope) {
  $scope.myArray = [
      "something1", 
      "something2",
      "something3",
   ];    
}

我试图让每个条目都在它自己的行上:

something1 
something2
something3

对于额外的功劳,我希望将文本重新分解为模型方面的数组。

我已尝试了一些内容,包括ng-listcustom directives,自定义过滤器和ng-repeat,但还没有找到任何地方。

小提琴示例:

http://jsfiddle.net/U3pVM/8162/

2 个答案:

答案 0 :(得分:1)

你想要的是拥有两个vars。基本上你的textarea是一个文本字符串。因此,如果您需要一个数组,那么在字符串模型上设置一个观察器。

http://jsfiddle.net/U3pVM/8165/

$scope.myStr = 'aaaa\nbbbb\nccccc';
$scope.$watch('myStr', function(myStr){
    $scope.myArray = myStr.split('\n');
    console.log('$scope.myArray', $scope.myArray);
});

答案 1 :(得分:0)

我不确定我理解你想要实现的目标。小提琴中没有文字区域。

您可以对阵列进行处理,以在每个字符串的末尾添加新的行字符。不确定这有帮助吗?

$scope.myArr = ['111\n', '222\n', '333\n']

http://jsfiddle.net/U3pVM/8161/

你的小提琴有很多信息,也许让它变得更简单?显示输入和输出。

编辑:

是输入输出吗?如果仅用于输出,您可以执行以下操作: http://jsfiddle.net/U3pVM/8164/