代码之家  ›  专栏  ›  技术社区  ›  Paolo B

AngularJS-条件逻辑不在单击链接时重新显示原始数据

  •  0
  • Paolo B  · 技术社区  · 8 年前

    我创建了一个plunker来显示问题 here

    如果单击“显示缺少数据的行”链接,则一切正常,它会过滤以显示包含错误数据的行。但是,如果单击“显示所有数据”,则不会再次显示其余数据?如何解决这个问题?

    vm.applyMissingValuesFilter = function (linktext) {
    
           if (linktext === "Display rows with missing data") {
    
               vm.savedResourceGridResources = vm.resourceGridResources;
    
               var results = [];
    
               var temp = vm.resourceGridResources.Resources;
    
               for (var i = 0; i < temp.length; i++) {
                      for (var j = 0; j < temp[i].Resources.length; j++) {
                          if (!temp[i].Resources[j].Value) {
    
                              if (results.indexOf(temp[i]) === -1) {
                                  results.push(temp[i]);
                              }
                          }
                      }
                  }
    
              vm.resourceGridResources.Resources = results;
    
              vm.missingValuesButtonText = "Show all data";
          }
          else if (linktext === "Show all data") {
    
              // should reset the resource values here to redisplay original data?
              vm.resourceGridResources = vm.savedResourceGridResources;
    
              vm.missingValuesButtonText = "Display rows with missing data";
    
          }
    };
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   Stanislav Kvitash    8 年前

    你必须使用 angular.copy

    vm.savedResourceGridResources = angular.copy(vm.resourceGridResources);

    Working plunker