这个问题在整个地方被问到,但$ 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中运行的。
任何解决方案请帮助!!
答案 0 :(得分:0)
似乎是因为按钮超出了控制器的范围。在调用函数时,它并没有更新范围数据。
span.nadpis {
position: absolute;
left: 0;
}
修正了它