角度更新屏幕

时间:2016-08-10 00:29:01

标签: angularjs ionic-framework

这个问题在整个地方被问到,但$ timeout,$ scope。$ apply等的组合没有任何区别。

    $scope.checkCameraIP = function(i){

    if(i > 99)
    return;

    var ip2Check = $deviceIP.substr(0, $deviceIP.lastIndexOf(".")+1) + i;

    if(ip2Check != $deviceIP)
      Gitup.get(ip2Check, gitupCmds.getDiskSpace).then(function (response) {
        $scope.cameras.some(function (camera,index) {
              if (camera.ip == '192.168.100.0') {
                $timeout(function(){
                  camera.ip = ip2Check;
                  camera.class = 'ion-wifi balanced'; // I JUST WANT THIS TO SHOW UP!
                 // $scope.checkCamera(camera);
              })

              }
              camerasFound ++;
              if(camerasFound < $scope.cameras.length)
                $timeout(function(){$scope.checkCameraIP(ipRange++)},100);
              return true;
          });
      },function(){$scope.checkCameraIP(ipRange++)}).catch(function(e){
       console.log(e);
      });
  else
      $scope.checkCameraIP(ipRange++);
  }

我正在寻找相机的IP地址循环。当我找到一个时,我用数组上的IP地址更新它

$scope.cameras = [{
  name: '1',
  ip: '192.168.100.0',
  class: 'ion-alert-circled',
  connected: false
}, {
  name: '2',
  ip: '192.168.100.0',
  class: 'ion-alert-circled',
  connected: false
}]

这显示在列表

<ion-list ng-controller="CamerasCtrl">
  <ion-item ng-repeat="camera in cameras">

    <label  class="item item-input">
      <i class="icon ion-camera placeholder-icon"></i>{{camera.name}} -
      <input type="text" class="block" ng-model="camera.ip" ng-change="onCameraIPChange(camera)" placeholder="{{camera.ip}}">
       <i id="connected" ng-class="camera.class"></i>

    </label>
    <div class="col text-right">
      <button ng-show="camera.connected && camera.files" class="button icon ion-android-delete" ng-click="formatCamera(camera)">
        Format camera
      </button>
    </div>

  </ion-item>
</ion-list>

我可以很好地找到相机并设置数据 - 但对于我的生活,我无法在屏幕上更新列表。

这是在Android上的Ionic App中运行的。

任何解决方案请帮助!!

1 个答案:

答案 0 :(得分:0)

似乎是因为按钮超出了控制器的范围。在调用函数时,它并没有更新范围数据。

span.nadpis {
    position: absolute;
    left: 0;
}

修正了它