我有一个问题。我需要使用angular.js动态启用我的文本字段,但它没有发生。我在下面解释我的代码。
<tr ng-repeat="gl in galleryDatas">
<td><input type="checkbox" ng-change="clickedRow(gl.checked,$index)" name="" ng-model="gl.checked"> {{$index+1}}</td>
<td><img ng-src="upload/{{gl.image}}" border="0" name="image" style="width:100px; height:100px;" /></td>
<td><textarea id="address" name="desc" class="form-control oditek-form" placeholder="Add comment" rows="6" ng-model="gl.description" style="height:70px" ng-readonly="gl.galComnt"></textarea></td>
<td>
<a class="btn btn-xs btn-success" title="Edit" ng-click="editComment(gl.gallery_id,$index,gl.description)"><i class="fa fa-pencil-square-o fa-fw"></i>{{gl.galEDit}}</a>
</td>
</tr>
我的控制器端代码如下所示。
$http({
method:'POST',
url:"php/customerInfo.php",
data:imageData,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).then(function successCallback(response){
$scope.formDiv=false;
$scope.gallery=true;
$scope.galleryDatas=[];
for(var i=0;i<response.data.length;i++){
var data={'gallery_id':response.data[i]. gallery_id,'subcat_id':response.data[i].subcat_id,'image':response.data[i].image,'description':response.data[i].description,'galComnt':true,'galEDit':"Edit"};
$scope.galleryDatas.push(data);
}
}
在此我需要用户点击编辑按钮,相应的行描述字段将是可编辑的。我的代码如下。
$scope.editComment=function(galid,index,comnt){
if($scope.galleryDatas[index].galEDit=="Edit"){
$scope.galleryDatas[index].galEDit="Update";
$scope.galleryDatas[index].galComnt=false;
}
}
但这里没有用。在这里我需要用户点击任何行编辑按钮,相应的行文本区域将是可编辑的。请帮助我。
答案 0 :(得分:0)
你不应该玩index
最终会导致混乱(当你在ng-repeat
上使用更多过滤器时更多),而只是将gl
对象传递给{{1功能。无论你在对象中改变什么,都会反映出它的原始参考和视图。
editComment
<强>代码强>
ng-click="editComment(gl)"
对$scope.editComment=function(gl){
if(gl.galEDit=="Edit"){
gl.galEDit="Update";
gl.galComnt=false;
}
}
函数执行相同的操作。