我在使用Angular.js点击按钮后尝试隐藏按钮时遇到一个问题。我正在解释下面的代码。
<tbody id="detailsstockid">
<tr ng-repeat="code in ListOfGeneratedCode">
<td>{{$index+1}}</td>
<td>{{code.name}}</td>
<td>{{code.no_of_voucher}}</td>
<td>{{code.expired_date}}</td>
<td>{{code.voucher_amount}}</td>
<td>
<input type='button' class='btn btn-xs btn-green' value='View' ng-click="viewVoucherCodeData(code.voucher_code_id);">
</td>
<td><img ng-src="upload/{{code.image}}" name="pro" border="0" style="width:50px; height:50px; border:#808080 1px solid;" /></td>
<td>
<input type='button' class='btn btn-xs btn-green' value='Send' ng-click="sendVoucherCode(code.voucher_code_id);">
</td>
<td ng-hide="editButton">
<a ui-sref="code">
<input type='button' class='btn btn-xs btn-green' value='Edit' ng-click="editVoucherCodeData(code.voucher_code_id);">
</a>
</td>
<td ng-hide="delButton">
<a ui-sref="code">
<input type='button' class='btn btn-xs btn-red' value='Remove' ng-click="deleteVoucherCodeData(code.voucher_code_id);">
</a>
</td>
</tr>
</tbody>
我的控制器端代码如下所示。
$scope.sendVoucherCode=function(voucherCodeId){
$scope.editButton=true;
$scope.delButton=true;
}
我的问题是当用户点击Send
时,所有行的edit and delete
按钮都消失了。我需要用户点击相应行的send
按钮的edit and delete
按钮应该消失。请帮助我。
答案 0 :(得分:2)
现有代码需要进行一些修改,因为编辑和删除的键是相同的,所以它清除整体。请参考以下代码:
<强> HTML 强>
<tbody id="detailsstockid">
<tr ng-repeat="code in ListOfGeneratedCode">
<td>{{$index+1}}</td>
<td>{{code.name}}</td>
<td>{{code.no_of_voucher}}</td>
<td>{{code.expired_date}}</td>
<td>{{code.voucher_amount}}</td>
<td><input type='button' class='btn btn-xs btn-green' value='View' ng-click="viewVoucherCodeData(code.voucher_code_id);"></td>
<td><img ng-src="upload/{{code.image}}" name="pro" border="0" style="width:50px; height:50px; border:#808080 1px solid;" /></td>
<td>
<input type='button' class='btn btn-xs btn-green' value='Send' ng-click="sendVoucherCode(code.voucher_code_id);">
</td>
<td ng-hide="code.editButton">
<a ui-sref="code">
<input type='button' class='btn btn-xs btn-green' value='Edit' ng-click="editVoucherCodeData(code.voucher_code_id);">
</a>
</td>
<td ng-hide="code.delButton">
<a ui-sref="code">
<input type='button' class='btn btn-xs btn-red' value='Remove' ng-click="deleteVoucherCodeData(code.voucher_code_id);">
</a>
</td>
</tr>
</tbody>
<强> JS 强>
在$scope.ListOfGeneratedCode
实例化后添加此内容。
angular.forEach($scope.ListOfGeneratedCode, function (value, key) {
value.push('editButton', false);
value.push('delButton', false);
});
使用以下命令追加/更改现有方法:
$scope.sendVoucherCode = function (id) {
angular.forEach($scope.ListOfGeneratedCode, function (value, key) {
if (value.voucher_code_id == id) {
value.editButton = $scope.delButton = true;
}
});
}
$scope.editVoucherCodeData = function (id) {
angular.forEach($scope.ListOfGeneratedCode, function (value, key) {
if (value.voucher_code_id == id) {
value.editButton = true;
}
});
}
$scope.deleteVoucherCodeData = function (id) {
angular.forEach($scope.ListOfGeneratedCode, function (value, key) {
if (value.voucher_code_id == id) {
value.delButton = true;
}
});
}