AngularJS路由页面刷新永远不会加载



我试图在salesforce本地混合android应用程序中使用AngularJS,虽然angular代码的简单测试在firefox中工作,但当我在android模拟器中运行它时,它加载了几分之一秒,并被空白屏幕所取代。

我注意到在路由后刷新页面(在第一个页面加载后转到[URL]/index.html#/)以一个永恒的"ajax加载"旋转器结束。我怀疑这可能是我问题的根源。我的路由代码看起来像这样:

var contactlistModule = angular.module("AugmentedContactList", ['ngRoute']);
contactlistModule.controller(ContactlistController);
contactlistModule.config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/', {
        controller: 'ContactlistController',
        templateUrl: 'viewparts/contactlistview.html'
    }).when('/contact', {
        controller: 'ContactController',
        templateUrl: 'viewparts/contact.html'
    }).otherwise({
        redirectTo: '/'
    });
}]);

为什么会出现这个刷新错误?去index.html不应该和去index.html#/有同样的效果吗?

我猜去index.html没有启用html5Mode不会像你期望的那样工作。

你可以通过注入$locationProvider并在你的配置中添加这一行来启用它:

$locationProvider.html5Mode(true);

然而,要知道,启用html5模式,你需要配置你的服务器返回index.html(或任何你的主页是)的每个URL请求。

参见:

locationProvider docs美元

最新更新