closuresAngularJS中的URL操作

我正在尝试使用Angular编写我的第一个Web应用程序。

在正常模式下(html5Mode off),Angular强制地址的哈希部分看起来像一个“path”(加一个前导“/”),并编码特殊字符 – 例如,它允许一个“?” 和“#”,并用%3F和%23replace其他。

有没有办法closures这个function? 我不想使用$ locationProvider / $ routeProvider特性 – 我想自己parsing哈希(在我的情况下,用户将在哈希中input一些“自由文本”来search我的网站)。

我读了routeProvider不能被configuration为使用正则expression式…

如果htmlMode打开,那么地址的哈希部分不会被强制看起来像一个path(不是前导“/”),但它仍然编码特殊字符。

我知道一些浏览器可能编码/转义的特殊字符,但如果用户设法在地址栏中input一些特殊字符,那么我不想改变它。

谢谢

不知道这个副作用,但它完成了工作。 请注意,即使有意,它也将禁用angular度应用程序的所有位置操作。

angular.module('sample', []) .config( ['$provide', function ($provide){ $provide.decorator('$browser', ['$delegate', function ($delegate) { $delegate.onUrlChange = function () {}; $delegate.url = function () { return ""}; return $delegate; }]); }]); 

testingChrome 30,IE9,IE10。
受启发https://stackoverflow.com/a/16678065/369724

我使用angular.js的本地副本。 search

 $browser.onUrlChange(function(newUrl, newState) { 

 $rootScope.$watch(function $locationWatch() { 

注释掉相应的行,angularjs会停止监视位置url的变化。

如果我没有记错,Angular的路由不是强制性的,但是你必须注意重新加载控制器,视图等。