重新加载不匹配任何州的网址页面

时间:2016-01-14 16:15:03

标签: angularjs angular-ui-router

我的应用程序不是完整的spa(angularjs + ui-router + aspnet5 mvc6)。所以我有很多链接应该触发页面重新加载服务器对其进行操作。我已经知道我可以使用target="_self"这样的东西,但这对我的用例来说很痛苦,我必须在我的应用程序中监视所有网址。

所以我要问的是:有没有办法让网页重新加载不匹配任何状态的网址?有点像otherwise,但只会重新加载不匹配的网址。

我已经查看了ui-router源代码,注册的规则没有公开,即使我想要你也无法检查它们。我的想法是这样的:

$rootScope.$on('$locationChangeStart', function (evt, newUrl, oldUrl) {
    // this would be the magic function that will try and match a state.
    var isMatched = match(newUrl);
    if (!isMatched && oldUrl != newUrl) {
        window.location.href = newUrl;
    }
});

我尝试了更多的事情:

使用otherwise

$urlRouterProvider.otherwise(function ($injector, $location) {
    window.location.href = $location.absUrl();
}

这里的问题是我们无法访问旧网址,因此此代码将导致无休止的重新加载周期。如果我可以从内部访问旧URL,那将会有效。

修改

我要做的是以下内容: 我的应用/的主页不属于ui-router。页面/news*属于ui-router。我已经将我的服务器配置为捕获所有/news*并使用包含<ui-view />的页面进行响应。这一切都很好,没问题。我只想要一个简单的事情发生:当一个锚点与href =&#34; / about&#34;被击中,ui-router无法匹配任何规则,只需重新加载&#34; / about&#34; 的页面。

0 个答案:

没有答案