通过office 365应用程序(离子移动应用程序)通过未读邮件通知

时间:2016-03-14 10:44:30

标签: javascript angularjs ionic-framework office365api

我正在创建一个离子移动应用程序,当他们从办公室365帐户收到一些未读邮件时,会通知应用程序的用户。我花了几个小时在这段代码上试图找出它出错的地方。如果有人能找到这段代码不起作用的原因,那将非常感激。谢谢。

(function () {
'use strict';

angular.module('app365').controller('homeCtrl', ['$scope', '$stateParams', '$ionicLoading', '$ionicPopup', 'app365api', homeCtrl]);

function homeCtrl($scope, $stateParams, $ionicLoading, $ionicPopup, app365api) {
    var vm = this;
    var outlookClient;

    // Get mail list.
    function getMails() {
        var filterQuery = '';

        // Get all mails flagged as important.
        if (typeof $stateParams.important != 'undefined') {
            getImpMails();
            return;
        }

        // Get all unread mails.
        if (typeof $stateParams.unread != 'undefined') {
            filterQuery = 'IsRead eq false';
        }

        NProgress.start();
        // Fetch Inbox folder
        outlookClient.me.folders.getFolder("Inbox").messages.getMessages().filter(filterQuery).fetch()
            .then(function (mails) {
                // Get current page. Use getNextPage() to fetch next set of mails.
                vm.mails = mails.currentPage;
                $scope.$apply();
                NProgress.done();
            });
    };
    if ($scope.result() == null) {
        null;
    } else {
        $ionicPlatform.ready(function () {

            $ionicPopup.confirm({
                title: "You have unread mail",
            })
            .then(function (result) {
                if (!result) {
                    ionic.Platform.exitApp();
                }
            });
        }

    )
    }
}
}

)
  

错误:[ng:areq]参数'homeCtrl'不是函数,未定义

这是我收到的错误,即使homeCtrl是一个函数并且已被引用。

1 个答案:

答案 0 :(得分:0)

您错过了调用IIFE最后的()。因此,控制器未被注册,因为该功能从未运行。

更改

(function() {
    'use strict';

    angular.module('app365').controller('homeCtrl', ['$scope', '$stateParams', '$ionicLoading', '$ionicPopup', 'app365api', homeCtrl]);

    function homeCtrl($scope, $stateParams, $ionicLoading, $ionicPopup, app365api) {
      // code removed for clarity

    }
  }
)

(function() {
    'use strict';

    angular.module('app365').controller('homeCtrl', ['$scope', '$stateParams', '$ionicLoading', '$ionicPopup', 'app365api', homeCtrl]);

    function homeCtrl($scope, $stateParams, $ionicLoading, $ionicPopup, app365api) {
      // code removed for clarity

    }
})();
//^^ missing braces