【问题标题】:how to run a angular js controller continuously(in every 5 seconds) after called the first time第一次调用后如何连续(每5秒)运行一个角度js控制器
【发布时间】:2017-01-10 11:07:36
【问题描述】:

这是我的 Angular js 文件(app.js),当我调用控制器(uuidCtrl)时,它将触发 uuidCtrl 控制器。当我想调用控制器 2 次时,我必须加载页面 2 次。但我想要在第一次调用后连续运行它。希望您对此有一些解决方案。

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

【问题讨论】:

    标签: javascript angularjs html ibeacon monaca


    【解决方案1】:

    你可以使用 $interval

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

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 2022-12-24
      • 2011-11-03
      • 1970-01-01
      • 2018-09-10
      • 1970-01-01
      相关资源
      最近更新 更多