[英]angularJS get value from a textarea inside a ng-repeat
How can I get the value of textarea
inside a ng-repeat
? 如何获取ng-repeat
中textarea
的值?
<div class="container" ng-repeat="data in dataList.dataCatalog | filter:{sea:season}">
<img src="../content/catalog/{{season}}/{{ data.id }}" />
<div class="containerDescription"> Desc :
<p>
<textarea ng-model="textArea[$index]" style="height:120px; width:200px;">{{data.description}}
</textarea>
</p>
<div ng-click="saveDescription(data.id,$index)">save</div>
</div>
</div>
.. ..
$scope.saveDescription = function (id,count) {
description=$scope.textArea[count]
alert(description)
}
What is my mistake? 我怎么了
You can use data.description
directly as a model, and then pass data as a parameter for your saveDescription()
callback. 您可以将data.description
直接用作模型,然后将数据作为参数传递给saveDescription()
回调。
Additionally when interpolating values in an image src
attribute you can use the ng-src
directive to handle un-interpolated values. 另外,在图像src
属性中插值时,可以使用ng-src
指令来处理未插值。
Furthermore, using $index
in a filtered ng-repeat
does not guarantee that it returns the correct $index
of the original data, in this case: dataList.dataCatalog
. 此外,在经过过滤的ng-repeat
中使用$index
不能保证它返回原始数据的正确$index
,在这种情况下为dataList.dataCatalog
。
HTML HTML
<div class="container" ng-repeat="data in dataList.dataCatalog | filter:{sea:season}">
<img ng-src="../content/catalog/{{season}}/{{ data.id }}" />
<div class="containerDescription"> Desc :
<p>
<textarea ng-model="data.description" style="height:120px; width:200px;"></textarea>
</p>
<div ng-click="saveDescription(data)">save</div>
</div>
</div>
JAVASCRIPT JAVASCRIPT
$scope.saveDescription = function (data) {
alert(data.id);
alert(data.description);
};
<div class="container" ng-repeat="data in dataList.dataCatalog | filter:{sea:season}">
<img src="../content/catalog/{{season}}/{{ data.id }}" />
<div class="containerDescription"> Desc :
<p>
<textarea ng-model="textArea" style="height:120px; width:200px;">{{data.description}}
</textarea>
</p>
<div ng-click="saveDescription(data.id,$index,textArea)">save</div>
</div>
</div>
No need to use an array. 无需使用数组。 Just pass the text as a parameter to the function 只需将文本作为参数传递给函数
$scope.saveDescription = function (id,count,textArea) {
description=textArea;
alert(description)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.