HTTP请求后重新呈现HTML

时间:2020-09-03 06:43:01

标签: angularjs

我们有一个滑块,允许用户选择一个时间段,从该时间段中收集其设备中的数据。时间段的长度应在不同类型的设备上有所不同,因此我需要该值是动态的。问题在于HTML会在http调用完成之前呈现,因此没有数据可查询滑块的长度。

http调用完成后是否可以重新呈现HTML,并且我们拥有所需的数据?

我对这个项目和Angularjs还是陌生的。与React一起工作最多的状态可以很容易地通过状态和Reacts自己的重新渲染功能来解决。

配置滑块

    let months
    $scope.rangeConfig = {
      type: 'double',
      step: moment.duration(1, 'days').asSeconds(),
      //'min_interval': moment.duration(1, 'days').asSeconds(),
      min: +moment()
        .utc()
        .subtract(months, 'months')
        .add(1, 'days')
        .startOf('day')
        .format('X'),
      max: +moment().utc().startOf('day').format('X'),
      from: $scope.timeFrom,
      to: $scope.timeTo,
      drag_interval: true,
      grid: true,
      prettify: function (num) {
        return moment(num, 'X').utc().format('LL')
      },
    }

HTML中的滑块

<ion-range-slider config="rangeConfig" on-finish="timeSet(data)"></ion-range-slider>

HTTP调用

    $rootScope.farm = FarmService.getFarm($routeParams.farmId, function (farm) {
      $scope.module = farm.getModule($routeParams.id, function () {
        updateLogs()

        // Listen for updates.
        var room = { type: 'farm', id: farm.id }
        SocketIO.join(room)
        SocketIO.on('moduleUpdated', function (id) {
          if ($scope.module.id === id) {
            $timeout(updateLogs, 60000)
          }
        })
        SocketIO.on('connect', function () {
          updateLogs()
        })
        $scope.$on('$destroy', function () {
          SocketIO.removeAllListeners('moduleUpdated')
          SocketIO.leave(room)
        })
      })
      months = $scope.module.type === 'smartplug' ? 2 : 12
    })

0 个答案:

没有答案