Автоматически добавил ng-hide в кнопку

<table>
<tr ng-repeat="response in customUserResponse">
  <td>
     <div class="buttons" align="center">
         <button ng-disabled="isReadOnly" class="btn actionBtn edit-disable"
                 ng-click="editResponse($index)"><i class="fa fa-edit"></i></button>
         <button ng-show="!response.Is_Global__c"
                 ng-model="response.Is_Global__c" ng- 
                 disabled="isReadOnly" class="btn actionBtn edit-disable"
                 ng-click="deleteQuestion($index)"> 
             <i class="fa fa-trash"></i></button>       
     </div>
  </td>
</tr> 
</table>

<table class="table" style="margin-top: 10px;">
     <tr>
         <td>
             <button ng-disabled="isReadOnly" class="btn actionBtn"
                     ng-click="addUserRow()">
                 <i class="fa fa-plus"></i></button> 
         </td>
      </tr>
</table>
    $scope.addUserRow = function () {
        var l = $scope.customUserResponse.length;
                
          if(l==0)
           {
             l = $scope.customUserQuestion.length;
                  
           }
                    
         var quest = {Question_Text__c:"", Response_Value__c:"", Status__c:"", Comments__c:"",  
         Is_Global__c:"false", Order__c:l};
                
        $scope.enabledEditResponse[l] = true;
        $scope.customUserResponse.push(quest);
        //var element = document.getElementByClass("deleteButton");
        //element.classList.remove("ng-hide");
        //angular.element(document.querySelector("#deleteButton")).removeClass("ng-hide");
        //$scope.showDeleteBtn = true;
        //$scope.$apply();
    };
$scope.submitQuestion = function() {
                var data = [];
                if($scope.customUserResponse.length >= $scope.customUserQuestion.length)
                    data = data.concat($scope.customUserResponse);
                else  {
                    data = data.concat($scope.customUserQuestion);
                    data = data.concat($scope.customUserResponse);
                }
                data.forEach(function(element) { element.Application_Id__c = $scope.appId; });
                var len = data.length;
                for(var i=0; i<len;i++){
                    data[i].Order__c = i+1;
                }
           ApplicationDataSource.saveFundingChecklistResponse(angular.toJson(data), function (result) {
                    if(result[0] !='{\"error\": true, \"result\": null}')
                    {
                        $scope.getResponse($scope.loadResponseInTable);
                                                                      
                        alert('Data saved Successfully');  
                        $scope.resetEnabledEditResponse();
                        //$scope.init();  
                    }
                    else
                    {
                        alert('Something went wrong. Data is not saved.'); 
                    }
                    $scope.$apply();
                });

            }; 

Когда response.Is_Global__c == false, появится кнопка удаления. Когда я нажимаю кнопку «плюс», добавляется одна строка, но кнопка «Удалить» не отображается. Но после сохранения обе кнопки отображаются. Когда я проверяю код, я вижу, что ng-hide автоматически добавляется в класс, и если я вручную удалю класс ng-hide, появится кнопка.


person Md. Alauddin    schedule 14.01.2020    source источник
comment
Можете ли вы показать действие сохранения?   -  person Bill P    schedule 14.01.2020
comment
Я дал действие сохранения.   -  person Md. Alauddin    schedule 14.01.2020


Ответы (1)


Класс ng-hide добавляется, когда выражение ng-show оценивается как ложное значение: это означает, что после действия сохранения это выражение становится false:

!response.Is_Global__c

Элемент отображается или скрывается путем удаления или добавления класса CSS .ng-hide к элементу.

https://docs.angularjs.org/api/ng/directive/ngShow

person Bill P    schedule 14.01.2020
comment
Но почему это условие ложно !response.Is_Global__c. Когда я нажал значение, я установил значение по умолчанию Is_Gl0bal__c = false. так что выражение ng-show истинно, это дает мне правильный результат после сохранения, почему бы и нет перед сохранением. Это проблема рендеринга? - person Md. Alauddin; 15.01.2020
comment
Я могу только предположить, может быть, Is_Gl0bal__c становится неопределенным или что-то в этом роде. Мы не можем помочь вам больше без минимального воспроизводимого примера - person Bill P; 15.01.2020