我知道在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中是否有类似的方式?
答案 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>