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

标签 javascript angularjs

我创建了一个 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";

      }
};

最佳答案

您必须使用angular.copy在修改数据之前保存数据:

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

Working plunker .

关于javascript - AngularJS - 条件逻辑不会在链接单击时重新显示原始数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46320116/

相关文章:

javascript - 如何使用 Angular.js 将 JSON 数组中的元素添加到网格中

angularjs - 过滤后从列表中删除项目

javascript - jQueryUI 选项中的条件 If 语句?

javascript - 如何使用scrollIntoView()同时平滑滚动两个元素?

javascript - 如何保持网络爬虫运行?

javascript - AngularJS 分页显示所有项目而不是页面项目

angularjs - 使用 AngularJs 从响应中检索 header 并将其设置在所有请求上

javascript - Angular js ng 显示不工作

javascript - 谷歌分析 : Tracking abandonment and goals for lightbox form

javascript - Firefox Javascript "can' t 转换为原始类型“错误是什么意思?