Я использую плагин phonegap-estimotebeacons в своем приложении Ionic, чтобы установить некоторые маяки. Когда он получает обновленную информацию о маяке, я хочу, чтобы она обновляла представление, но мой список не обновляется до тех пор, пока я не перейду на другую вкладку и не вернусь обратно.Обновить Ионный вид из асинхронного обратного вызова
Вот мой взгляд, в котором перечислены все найденные маяки:
<ion-view view-title="Beacons">
<ion-content>
<ion-list>
<ion-item ng-repeat="beacon in beacons" type="item-text-wrap">
<span>{{beacon.macAddress}}</span>
<span>{{beacon.distance}}</span>
</ion-item>
</ion-list>
</ion-content>
</ion-view>
Вот контроллер, который делает вид:
.controller('BeaconsCtrl', function($scope, Beacons) {
$scope.beacons = [];
Beacons.range($scope);
})
Beacons
завод затем начинает колебаться маяки и обновить область на каждый успешный обратный вызов:
.factory('Beacons', function() {
rangeBeacons = function($scope) {
var success = function(beaconInfo) {
$scope.beacons = beaconInfo.beacons;
};
var failure = function(errorMessage) {
alert(errorMessage);
};
EstimoteBeacons.startRangingBeaconsInRegion(
{},
success,
failure
);
};
return {
range: rangeBeacons
};
})
Из другого примера Я видел, похоже, мое мнение должно реагировать, когда я обновляю объект $scope
, но мне нужно перейти на другую вкладку, а затем вернуться, чтобы обновить мой просмотр. Что я могу сделать, чтобы обновить представление, как только будет изменена переменная $scope
?
Update
Модифицированный код контроллера, чтобы показать, что я пытался инициализировать $scope.beacons
пустой массив, но это не имеет никакого значения.
https://github.com/evothings/phonegap-estimotebeacons/blob/master/examples/beacon-finder/README.md – Samo