在文本区域内呈现多个值,以换行符分隔

Render multiple values, separated by line break, within a textarea

我正在 angular 中呈现动态表单。当属性有多个值时,我希望在文本区域内呈现它们。每个值各占一行。

但无法正常工作!

这是我目前拥有的:

<script type="text/ng-template" id="form_field_text">
  <label for="{{field.displayName}}">{{field.displayName}}</label>
  <br />  
  <div ng-if="field.multivalue == '0'">
    <input id="{{field.displayName}}" type="text" ng-model="formValues[field.displayName]" placeholder="{{ field.theValues[0]}}" />
  </div>       
  <div ng-if="field.multivalue == '1'">
    <textarea rows="field.numberOfValues"> 
      <p ng-repeat="value in field.theValues track by $index">
      {{value}}&#10;
      </p>
    </textarea> 
  </div>
</script>

这是我得到的,我认为这是因为我在每个 ng-repeat 循环中渲染

元素,而 textarea 不承认它:

在这种情况下,我可以在没有任何 html 元素 "paragraph" 的情况下执行 ng-repeat 吗? 或任何其他方式完成此操作?

这样就可以了:

  <div ng-if="field.multivalue == '1'">
    <textarea  rows="{{field.numberOfValues}}" cols="50">
      {{field.theValues.join("&#10;");}}
    </textarea>
    <button type="button" ng-click="addValue(field)">Add value </button>
  </div>

该按钮运行以下功能,但仅用于测试:

  $scope.addValue = function(field) {
    field.theValues[(field.numberOfValues)] = "aaaa";
    field.numberOfValues++;
  };

但出于某种原因,我在第一行缩进了:

我修复了 "white-space" 属性的缩进问题:

<textarea rows="{{field.numberOfValues}}" cols="50" style="white-space: nowrap;">