2015-04-03 69 views
0

我设置了一个基本的离子应用程序,包含几个视图和控制器。当我加载首页时,我总是以$urlRouterProvider.otherwise('views/error.html');行结束。并没有模板被加载,即使是error.html。不加载angularJS和Ionic的模板

我不知道为什么。我在控制台或任何东西中都没有出现js错误。有任何想法吗?

这是我的代码:

的HTML

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 
    <title></title> 

    <link href="lib/ionic/css/ionic.css" rel="stylesheet"> 
    <link href="css/style.css" rel="stylesheet"> 

    <!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above 
    <link href="css/ionic.app.css" rel="stylesheet"> 
    --> 

    <!-- ionic/angularjs js --> 
    <script src="lib/ionic/js/ionic.bundle.js"></script> 

    <!-- cordova script (this will be a 404 during development) --> 
    <script src="cordova.js"></script> 

    <!-- your app's js --> 
    <script src="js/app.js"></script> 
    <script src="js/controllers/LoginController.js"></script> 
    <script src="js/controllers/MainMenuController.js"></script> 
    <script src="js/controllers/SettingsController.js"></script> 
    </head> 
    <body ng-app="iou"> 
    <ion-nav-view></ion-nav-view> 
    </body> 
</html> 

的JavaScript

var app = angular.module('iou', ['ionic']) 

.run(function($ionicPlatform) { 
    $ionicPlatform.ready(function() { 
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
    // for form inputs) 
    if(window.cordova && window.cordova.plugins.Keyboard) { 
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
    } 
    if(window.StatusBar) { 
     StatusBar.styleDefault(); 
    } 
    }); 
}); 

app.config(function($stateProvider, $urlRouterProvider) { 

    $stateProvider.state('index', { 
     url: '/', 
     templateUrl: 'views/login.html', 
     controller: 'LoginController' 
    }); 

    $stateProvider.state('mainmenu', { 
     url: '/mainmenu', 
     templateUrl: 'views/mainmenu.html', 
     controller: 'MainMenuController' 
    }); 

    $stateProvider.state('settings', { 
     url: '/settings', 
     templateUrl: 'views/settings.html', 
     controller: 'SettingsController' 
    }); 

    $urlRouterProvider.otherwise('views/error.html'); // I always end up here 
}); 

回答

0

所以我的解决办法是改变:

$urlRouterProvider.otherwise('views/error.html'); 

到:

$urlRouterProvider.otherwise('/'); 
0

errors.html是在你的视图文件夹,并有一些标记来呈现? $ urlRouteProvider.otherwise('directory/file.html')将始终在您的应用程序启动时加载。

+0

errors.html是我的看法是文件夹,它有一些标记。但是,该标记不会呈现。没有标记,应用程序只是重定向到错误的网址,但它是空白的.. – Weblurk 2015-04-04 08:41:54