我正在创建一个离子移动应用程序,当他们从办公室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是一个函数并且已被引用。
答案 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