简体   繁体   English

angularJS从ng-repeat内的textarea获取值

[英]angularJS get value from a textarea inside a ng-repeat

How can I get the value of textarea inside a ng-repeat ? 如何获取ng-repeattextarea的值?

<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

SEE THIS DEMO 查看此演示

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM