javascript - 如何重新运行/重新加载 Controller 的一部分?

标签 javascript angularjs

在下面的 Angular Controller 中,$q.all 获取保存在 $scope.building 中的 JSON 树。然后使用 $scope.building 创建 panopanodata:

JS:

angular.module('yoApp')
  .controller('addPanoCtrl', function($q, $scope, $rootScope, $routeParams, serviceUpload) {
    $scope.buildingId = $routeParams.buildingId

    $q.all([
      serviceUpload.getAllBuilding()
    ]).then(function(value) {
      var buildingJSON = _.where(JSON.parse(value), {'objectId': $scope.buildingId})
      $scope.building = buildingJSON[0]
    }, function(reason) {
      $scope.result = reason
    })

    // Methods

    $scope.addPano = function() {
      // SOME CODE
      pano.save(json, {
    success: function(object) {
      $scope.building.pano.push(json)
      $scope.panoName = ''
      $scope.$digest()
    },
    error: function(object, error) {
    }
      })
    }

    $scope.addPanodata = function(panoId) {
      // SOME CODE
      panodata.save(json, {
    success: function(object) {
      $scope.pano.panoData.push(json)
      $scope.panodataName = ''
      $scope.$digest()
    },
    error: function(object, error) {
    }
      })
    }
  })

HTML:

   <div class="col-md-3" ng-repeat="pano in building.pano">
    <!-- SOME CODE -->
    <a class="btn btn-primary" href="javascript:;" ng-click="addPanodata(pano.objectId)">Add</a>

保存 pano 没有问题,因为我有 $scope.buildingId。当我保存 panodata 时,问题就出现了。如果我创建一个 pano 然后创建一个 panodata 我不能,因为 $scope.building 没有新的 pano.

如果我重新加载页面,panodata 就会被保存,但我在想是否可以只重新加载 $q.all 位,所以 $scope。使用新创建的 pano 再次获取building get。

在 AngularJS 中完成此任务的常用方法是什么?

最佳答案

您可以将获取数据提取到一个函数中,然后在需要更新数据时再次调用它,例如在 $scope.addPanodata()

内部

关于javascript - 如何重新运行/重新加载 Controller 的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34716917/

相关文章:

javascript - 减慢 JavaScript Canvas 动画速度的最佳方法?

javascript - 单击更改字形 + 表标题颜色更改

javascript - 学习 JavaScript 时的有趣结果。但我不知道为什么

javascript - 创建用于向元素添加样式的原型(prototype)函数

JavaScript 将事件从一个窗口传递到另一个窗口

提交时 JavaScript 日期验证

javascript - 如何使用 Angular Controller 从 Mongo 数据库获取数据

angularjs - 如何以编程方式清除 AngularJS 中的 Material 设计自动完成功能?

javascript - Angular 、动态指令加载和事件管理

javascript - 使用 "assignment to undeclared variable"时为 "for (i=0; ..)"