Angularjs:使用$ scope.array.push()在页面上不会立即刷新更新的数据

时间:2016-05-13 13:54:16

标签: angularjs

以下代码正在我的本地计算机上运行,​​但是当此代码被推送到远程服务器时,它无法按预期工作。

在这里,我打开一个模板进行编辑:

<tr class="read" ng-repeat="records in allExportTemplates | orderBy:'-lastRequestDateTime'">
  <td class="mail-ontact">
    {{records.exportTemplateName}}
  </td>
  <td class="mail-subject">
    {{records.exportFormat}}
  </td>
  <td class="">
    <a class="fa fa-cog" data-toggle="modal" ng-click="editTemplate(records)"></a>
  </td>

editTemplate的控制器代码:

$scope.templateData = {};

$scope.editTemplate = function(templateRecords){
      $('#someModal').modal('show');
      $scope.templateData._id = templateRecords._id;
      $scope.templateData.companyId = templateRecords.companyId;
      $scope.templateData.templateName = templateRecords.exportTemplateName;
      $scope.templateData.exportFormat = templateRecords.exportFormat;
    }

及以下是更新模板的代码:

<form role="form" name = "edittemplateForm">
  <div class="form-group">
    <label class="control-label" for="exampleInputEmail1" contenteditable="true">Template Name</label>
    <input class="form-control" id="exampleInputEmail1" placeholder="Monthly" name="templateName" ng-model="templateData.templateName" ng-required="true">
  </div>
  <div class="form-group">
    <label class="control-label" name="selectExportFormat">Select Export Format</label>
    <select class="form-control" ng-model="templateData.exportFormat">
      <option>XML</option>
      <option>JSON</option>
    </select>
表格外的

<button type="button" class="btn btn-primary" ng-click="updateTemplate(edittemplateForm)" ng-disabled="edittemplateForm.$invalid">Update</button>

这是要更新的控制器代码:

$scope.updateTemplate = function(editTemplateForm){

    someSrv.updateTemplate($scope.templateData)
    .success( function(response) {
        if($scope.allExportTemplates.length){
            for(i =0;i < $scope.allExportTemplates.length ;i++){
                if($scope.allExportTemplates[i]._id == response.data._id){
                    $scope.allExportTemplates.splice(i,1);
                    break;
                }                
            }
            $('#someModal').modal('hide');
            $scope.allExportTemplates.push(response.data);
        }   
    })

在更新模板时,我将从数组中删除旧数据。但是,它不会立即显示在页面上,只有在页面刷新后才会显示正确的数据。响应包含旧数据,而它在我的本地机器上完美运行,响应具有最新数据并在隐藏模态后直接显示在页面上。但是,似乎无法在远程服务器上运行。

该问题的任何线索?

1 个答案:

答案 0 :(得分:0)

获得解决方案,将其发布在此处,以便将来可以帮助某人。

这是一个与猫鼬相关的问题。在服务器上升级mongoose版本就可以了。