如何在控制器中获取textarea的值列表?

时间:2014-01-25 16:57:27

标签: angularjs

我知道在AngularJS中你不能操纵控制器中的DOM,控制器和视图之间的桥是$ scope。我正在根据ajax调用的结果创建一些textareas。

<div ng-repeat="field in fieldNames">
   <label for="{{ field }}">Description of {{ field }} field</label>
       <textarea class="form-control" id="{{ field }}" rows="4"></textarea>
</div>

我希望在这些下面有一个加上textarea,点击一个按钮后,我会将每个textareas的文本解析为Wiki格式直接进入这个textarea。

我正在阅读AngularJS文档,但还没有找到解决方案。如果我给textareas一个ng-model={{ field }},我怎么能得到它们的全部价值呢?

如果我可以在$scope.之后给出一个变量,那么就没有任何问题,但我认为不可能这样。

在jQuery中,除了最后一个$.each($('textarea'),function(key,val){ result += val.value; ... }之外,我得到了所有的textareas,并将它们的值添加到我写给Wiki textarea的字符串中。

AngularJS中是否有类似的方式?

1 个答案:

答案 0 :(得分:2)

ngModel不支持插值语法{{expression}}。

您的数据应该形成为对象数组:

$scope.fieldNames = [
 { id:1, name:"textarea1" , text:"" },
 { id:2, name:"textarea2" , text:"" },
 { id:3, name:"textarea3" , text:"" }
]

然后你可以这样做:

<div ng-repeat="field in fieldNames">
   <label for="{{ field.id }}">Description of {{ field.name }} field</label>
       <textarea ng-model="field.text" class="form-control" id="{{ field.id }}" rows="4"></textarea>
</div>