当前位置: 首页 > 面试题库 >

在AngularJS中关闭URL操作

佘缪文
2023-03-14
问题内容

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

在正常模式下(关闭html5Mode),Angular强制地址的哈希部分看起来像“路径”(添加前导“ /”),并编码特殊字符-例如,它允许单个“?”
和“#”,并用%3F和%23替换其他字符。

有没有办法关闭此功能?我不想使用 $ locationProvider / $ routeProvider 功能-
我想自己解析哈希(在我的情况下,用户将在哈希中输入一些“自由文本”以在我的网站内搜索)。

我读到routeProvider无法配置为使用正则表达式

如果打开了htmlMode,则不会强制地址的哈希部分看起来像路径(无前导“ /”),但仍会编码特殊字符。

我知道有些浏览器可能仍然会编码/转义特殊字符,但是如果用户设法在其地址栏中输入一些特殊字符,那么我就不想更改它。

谢谢


问题答案:

不确定这样做的副作用,但是可以完成工作。请注意,即使有意使用,也会从角度应用程序禁用所有位置操纵。

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

ES6变体:

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

            return $delegate;
        }]);
    }]);


 类似资料:
  • 问题内容: 我正在尝试使用$ log.debug(“ Foo”)。如何将其关闭。我在任何地方都找不到样品。我认为它需要在配置中设置,但我似乎也无法使其正常工作。 哪里设置开关? 问题答案: $ logProvider.debugEnabled(true) 仅在AngularJs 1.1.2或更高版本中可用。 https://github.com/angular/angular.js/pull/16

  • 问题内容: Java什么时候放开与URL的连接?我在URL或URLConnection上都没有看到close()方法,所以一旦请求完成,它会释放连接吗?我主要是询问是否需要在异常处理程序中进行任何清理。 问题答案: 它取决于协议中指定的特定协议。有些维护持久连接,而另一些则在您的呼叫在连接给定的输入或输出流中关闭时关闭其连接。但是除了记住关闭从URLConnection打开的流之外,您无能为力。

  • 问题内容: 我想知道是否有一种方法,通过单击“ X”,让程序在关闭JFrame之前执行一些代码。该方法仅使用整数。 问题答案: 您可能对使用感兴趣。本教程。

  • 问题内容: 当我使用jQuery执行DOM操作(添加新HTML)时,AngularJS不会自动检测新HTML中的变量并将其替换为它们的值。例如: 这是一个简单的例子,但在元素更改HTML(此功能被称为后),输出它仍然不是什么 行 应该在上下文/范围的意思。 问题答案: 您必须注入(http://docs.angularjs.org/api/ng.$compile)并使用它,以便对新html 有所了

  • 问题内容: 我有一个网页,上面有两个AngularJS应用程序。因为有两个应用程序,所以我必须将这些应用程序引导到页面上。我正在引导这样的应用程序: 我的问题是,如何完全关闭哈希开关?我没有使用AngularJS进行视图管理。我将它用于其他用途。但是由于某种原因,当我访问带有Angular的IE8的页面时,用户将被重定向到其中具有hashbang的页面。哈希引发服务器端错误。因此,我需要将其关闭。

  • 方法是 现在我试着像这样改成stream,但我不知道这种改是否正确: 如何避免出现例外,解决问题? 我应该以某种方式重构代码吗?