无法使用Angular.js动态启用文本字段

时间:2016-09-26 11:35:02

标签: javascript angularjs

我有一个问题。我需要使用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;
        }
}

但这里没有用。在这里我需要用户点击任何行编辑按钮,相应的行文本区域将是可编辑的。请帮助我。

1 个答案:

答案 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; } } 函数执行相同的操作。