2017-01-10 2 views
1

hier ist meine eckige js-datei (app.js) wenn ich den controller aufrufen (uuidCtrl) wird es die uuidCtrl Controller.wenn ich will den controller 2 mal aufrufen ich muss die seite 2 mal laden.Aber ich möchte sie nach dem ersten mal kontinuierlich aufrufen.Hoffe hast du eine lösung dafür.wie man einen eckigen js controller kontinuierlich (in alle 5 sekunden) nach dem ersten anruf

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); 
    } 
}]); 

Diese js sollte in der Anwendung durchgeschleift werden Baken scannen in der Nähe

Dies ist, wo ich den Controller nennen

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

Antwort

0

Sie $ Intervall verwenden können

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 
    ... 

Auch Vielleicht möchtest du die watchBeacons anrufen, und einen Callback übergeben, nicht wie du es jetzt tust, das du einfach de eine Funktion

$scope.beacons = iBeaconService.beacons; 

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

Hoffe, das hilft.

Verwandte Themen