2017-01-10 3 views
1

вот мой угловой файл js (app.js), когда я вызываю контроллер (uuidCtrl), он вызывает контроллер uuidCtrl. Когда я хочу вызвать контроллер 2 раза, мне нужно загрузить страницу 2 раза. Но я хочу запустить ее непрерывно после вызова в первый раз. Упование У вас есть какое-то решение для этого.как управлять угловым контроллером js непрерывно (каждые 5 секунд) после вызова в первый раз

var app = angular.module('myApp', ['onsen']); 

app.service('iBeaconService', function() { 
    this.currentBeaconUuid = null; 
    this.onDetectCallback = function() { 
    }; 

    this.beacons = { 
     "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx": { 
      icon: 'img/1.jpg', 
      rssi: -200, 
      proximity: PROX_UNKNOWN, 
      name: 'Beacon', 
      number: '1', 
      id: '000265C9' 
     } 

    }; 

    createBeacons = function() { 
     //some code 
    }; 

    this.watchBeacons = function (callback) { 
     ///some code 
    }; 

}); 
app.controller('uuidCtrl', ['$scope', 'iBeaconService', function ($scope, iBeaconService) { 

    $scope.beacons = iBeaconService.beacons; 

    var callback = function (deviceData, uuid) { 

     iBeaconService.watchBeacons(callback); 
    } 
}]); 

Это Js должен быть выбираемым в приложении для сканирования маяков рядом

Это то, где я называю контроллер

<ons-page id="page2" ng-app="myApp" ng-controller="uuidCtrl"> 

ответ

0

Вы можете использовать $ интервала

app.controller('uuidCtrl', ['$scope', '$interval', 'iBeaconService', function ($scope, $interval, iBeaconService) { 
    ... 
    $interval(function() { 
    // do whatever you want to execute every 5 sec 
    }, 5000) // 5000 ms execution 
    ... 

Также , вы, вероятно, хотите вызвать watchBeacons и передать обратный вызов, а не так, как сейчас, когда вы просто тонкая функция

$scope.beacons = iBeaconService.beacons; 

iBeaconService.watchBeacons(function (deviceData, uuid) { 
    // do whatever 
}); 

Надеюсь, что это поможет.