2013-10-03 34 views
1

有没有办法禁用jQuery的移动历史记录处理程序使用angularjs的历史和url处理?如何关闭angularjs中的历史记录处理?

例如在jQuery的手机,您可以通过设置禁用历史记录处理程序:

$.mobile.ajaxEnabled = false; 
$.mobile.linkBindingEnabled = false; 
$.mobile.hashListeningEnabled = false; 
$.mobile.pushStateEnabled = false; 

angularjs相当于什么?

回答

2

路由配置后,您必须声明的委托,将禁用历史跟踪:

var app = angular.module('TagGadget', ['ngRoute']); 

app.config(function ($routeProvider) { 
    $routeProvider 

     // route for the home page 
     .when('/home1', { 
      template: '<div ><h1>Home Page</h1><p>{{ message }}</p></div>', 
      controller: 'maincontroller' 
     }) 
     .otherwise({ 
     redirectTo: '/home1' 
     }); 
    }); 
app.config(['$provide', function ($provide){ 
    $provide.decorator('$sniffer', ['$delegate', function ($delegate) { 
     $delegate.history = false; 
     return $delegate; 
    }]); 
}]) 
+1

我很高兴,我发现这个答案。花了我一段时间才发现AngularJS干扰了历史API。绝对不是我最喜欢的框架。 – juminoz

+0

不能与$ stateProvider一起使用 –