我在AngularJS中开发了一个应用程序。我的应用程序有2个控制器和5个模板。此应用程序在Android和Windows平台上运行得非常好。但是,每当我尝试在iOS上访问此应用程序时,它都会出现以下错误
错误:[$ compile:tpload]
我试图切换到工作正常并在加载时渲染的模板。但是,错误仍然是一样的。
我怀疑我的app.js有些问题,但不是很明确。
var App = angular.module('myApp',['ngRoute', 'ngCookies','ngDialog'])
.config(config)
.run(run);
config.$inject = ['$routeProvider', '$locationProvider'];
function config($routeProvider, $locationProvider) {
$routeProvider
.when('/home', {
controller: 'FirstController',
templateUrl: 'templates/FirstPage.html',
controllerAs: 'ctrl'
})
.when('/home1', {
controller: 'FirstController',
templateUrl: 'templates/SecondPage.html',
controllerAs: 'ctrl'
})
.when('/home2', {
controller: 'FirstController',
templateUrl: 'templates/thirdPage.html',
controllerAs: 'ctrl'
})
.when('/loginRedirect', {
controller: 'LoginController',
templateUrl: 'templates/LoginRedirect.html',
controllerAs: 'vm'
})
.when('/login', {
controller: 'LoginController',
templateUrl: 'templates/Login.html',
controllerAs: 'vm'
})
.otherwise({ redirectTo: '/login' });
}
run.$inject = ['$rootScope', '$location', '$cookies', '$http','ngDialog'];
function run($rootScope, $location, $cookies, $http,ngDialog) {
// keep user logged in after page refresh
$rootScope.globals = $cookies.getObject('globals') || {};
if ($rootScope.globals.currentUser) {
$http.defaults.headers.common['Authorization'] = 'Basic ' + $rootScope.globals.currentUser.authdata;
}
$rootScope.$on('$locationChangeStart', function (event, next, current) {
var restrictedPage = ['/login'].indexOf($location.path()) === -1;
var loggedIn = $rootScope.globals.currentUser;
if (!restrictedPage && !loggedIn) {
$location.path('/login');
}
});
}
当我执行我的应用程序时,我的登录页面显示完全正常。登录时,它会将我重定向到loginRedirect页面。但是,当我尝试访问任何页面后,即FirstPage,SecondPage或thirdPage时,它会抛出异常。
但是,请记住,这些问题只发生在我在任何iOS计算机上访问我的应用程序时。即iPhone(Safari或Chrome),iPad(Safari或Chrome)。
我希望任何人都有同样的问题,或者可能有解决这个问题的方法。