我试图在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美元