仅对 ng-repeat 中单击的按钮提供操作
Providing action to only the clicked button in ng-repeat
我正在使用 ng-repeat。在 ng-repeat 中,我正在重复 panel.The 面板正文由两部分组成。第一部分是一个段落,我使用 $[= 从数据库中获取它21=]()。在第二部分中,我有一个按钮(编辑按钮)。当我单击编辑按钮时,第一部分中的段落应该被隐藏,文本区域应该与段落中的内容一起显示为 default.But 当我试图实现这一点,当我单击一个编辑按钮时,我得到了一个想法,我的所有 paragragh 隐藏并且文本区域出现。我如何限制它。
$scope.editorEnabled = false;
$scope.enableEditor = function() {
$scope.editorEnabled = true;
};
<div ng-repeat="(key,rec) in recordcomment">
<div class="row">
<div class="col-md-10">
<div class="panel panel-default">
<div class="panel-heading">
heading
</div>
<div class="panel-body" style="background-color:white;">
<p ng-hide="editorEnabled">{{rec.comment}}</p>
<textarea ng-model="rec.comment" ng-show="editorEnabled"></textarea>
<button class="btn btn-primary pull-right" ng-click="enableEditor()">Edit</button>
</div>
</div>
</div>
</div>
</div>
Add the editorEnabled
object with ng-rpeat
object. so it will be consider with the array object. and you can pass this
current object via click function()
and set true/false the editorEnabled
object.
代码看起来像。
<div class="panel-body" style="background-color:white;">
<p ng-hide="rec.editorEnabled">{{rec.comment}}</p>
<textarea ng-model="rec.comment" ng-show="rec.editorEnabled"></textarea>
<button class="btn btn-primary pull-right" ng-click="enableEditor(this)">Edit</button>
</div>
$scope.enableEditor = function(context) {
context.editorEnabled = true;
};
<div class="panel-body" style="background-color:white;">
<p ng-hide="rec.editorEnabled">{{rec.comment}}</p>
<textarea ng-model="rec.comment" ng-show="rec.editorEnabled"></textarea>
<button class="btn btn-primary pull-right" ng-click="enableEditor(rec)">Edit</button>
</div>
$scope.enableEditor = function(context) {
context.editorEnabled = true;
};
使用 rec 而不是 this
因为this表示ng-repeat指令的当前上下文..
所以为了让它生效我们需要修改对象...
因此我们需要传递它,因为我在函数参数
中使用了rec
试试这个以防发表评论
我正在使用 ng-repeat。在 ng-repeat 中,我正在重复 panel.The 面板正文由两部分组成。第一部分是一个段落,我使用 $[= 从数据库中获取它21=]()。在第二部分中,我有一个按钮(编辑按钮)。当我单击编辑按钮时,第一部分中的段落应该被隐藏,文本区域应该与段落中的内容一起显示为 default.But 当我试图实现这一点,当我单击一个编辑按钮时,我得到了一个想法,我的所有 paragragh 隐藏并且文本区域出现。我如何限制它。
$scope.editorEnabled = false;
$scope.enableEditor = function() {
$scope.editorEnabled = true;
};
<div ng-repeat="(key,rec) in recordcomment">
<div class="row">
<div class="col-md-10">
<div class="panel panel-default">
<div class="panel-heading">
heading
</div>
<div class="panel-body" style="background-color:white;">
<p ng-hide="editorEnabled">{{rec.comment}}</p>
<textarea ng-model="rec.comment" ng-show="editorEnabled"></textarea>
<button class="btn btn-primary pull-right" ng-click="enableEditor()">Edit</button>
</div>
</div>
</div>
</div>
</div>
Add the
editorEnabled
object withng-rpeat
object. so it will be consider with the array object. and you can passthis
current object viaclick function()
and set true/false theeditorEnabled
object.
代码看起来像。
<div class="panel-body" style="background-color:white;">
<p ng-hide="rec.editorEnabled">{{rec.comment}}</p>
<textarea ng-model="rec.comment" ng-show="rec.editorEnabled"></textarea>
<button class="btn btn-primary pull-right" ng-click="enableEditor(this)">Edit</button>
</div>
$scope.enableEditor = function(context) {
context.editorEnabled = true;
};
<div class="panel-body" style="background-color:white;">
<p ng-hide="rec.editorEnabled">{{rec.comment}}</p>
<textarea ng-model="rec.comment" ng-show="rec.editorEnabled"></textarea>
<button class="btn btn-primary pull-right" ng-click="enableEditor(rec)">Edit</button>
</div>
$scope.enableEditor = function(context) {
context.editorEnabled = true;
};
使用 rec 而不是 this
因为this表示ng-repeat指令的当前上下文..
所以为了让它生效我们需要修改对象...
因此我们需要传递它,因为我在函数参数
中使用了rec试试这个以防发表评论