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

AngularJS UI路由器的奇怪行为与路由中的附加段

伍嘉
2023-03-14
问题内容

当我向路由添加错误的段时,我遇到了ui-router的问题。

一个例子…
http://xxx.xxxxx.xxx/roles可以正常工作。这是没有参数定义的路由。但是,如果我在浏览器http://xxx.xxxxx.xxx/roles/kk中添加了另一个细分,则$
urlRouteProvider.otherwise(’/’)不起作用,并且该应用程序正在尝试加载所有网络资源(css,html,
javascript等)从类似http://xxx.xxxxx.xxx/roles/app/app.css的路由返回控制台中的许多错误。

这段代码在我的app.config中:

    $urlRouterProvider
        .otherwise('/');
    $locationProvider.html5Mode(true);

这是路由定义的示例:

angular.module('myApp')
.config(['$stateProvider', function ($stateProvider) {
    $stateProvider
        .state('roles', {
            url: '/roles',
            templateUrl: 'app/modules/admin/roles/index.html',
            controller: 'RolesCtrl',
            authenticate: true
        })
        .state('logs', {
            url: '/logs',
            templateUrl: 'app/modules/admin/logs/index.html',
            controller: 'LogsCtrl',
            authenticate: true
        })
        .state('parameters', {
            url: '/parameters',
            templateUrl: 'app/modules/admin/parameters/parameters.html',
            controller: 'ParametersCtrl',
            authenticate: true
        });
}]);

这种行为有帮助吗?问候何塞


问题答案:

不能完全确定这里的问题…但是我创建了工作的plunker,这应该有助于了解需要什么才能看到
HTML 5ui-router一起工作。如果服务器端配置正确,则应立即使用。请先检查以下内容:

  • 如何:配置服务器以使用html5Mode

现在,将调整状态def,以显示深层的URL嵌套:

$stateProvider
    .state('roles', {
        url: '/roles/:id',
        ...
    })
    .state('roles.logs', {
        url: '/logs',
        ...
    })
    .state('roles.logs.parameters', {
        url: '/parameters',
        ...
    });

要进行以下所有调用,请执行以下操作:

<nav> 
  <a href="roles/11">roles/11/</a><br />
  <a href="roles/22/logs">roles/22/logs</a><br />
  <a href="roles/33/logs/parameters">roles/33/logs/parameters</a><br />
</nav>

<nav> 
  <a ui-sref="roles({id:1})">roles </a><br />
  <a ui-sref="roles.logs({id:2})">roles.logs</a><br />
  <a ui-sref="roles.logs.parameters({id:3})">roles.logs.parameters</a><br />
</nav>

在我们的示例中,我们不必忘记正确设置基本URL:

<!DOCTYPE html>
<html ng-app="MyApp">

  <head>
    ...
    <base href="/cTRk4o9HRELCQ4OK/" />

但是,对于pluker,我们应该动态设置:

<script>
  document.write('<base href="'+ document.location.pathname +'" />')
</script>

在这里检查工作示例



 类似资料:
  • 如果我将路由折叠起来,这样看起来就像: 工作很好。我嵌套的原因是因为我将在“dashboard”下有多个子项,并且希望它们都在URL中以为前缀。

  • 使用redux和反应路由器,我想访问路由指定的组件以外的组件上的路由参数。 我已经对react-router、redux和react-router-redux进行了如下设置,我想从我的redux存储访问reportId参数。 我已经尝试连接react-redux路由器来存储路由状态,但是我发现除了活动路由的完整路径之外,redux内部没有任何有用的存储。这让我可以选择从redux中的路径解析出re

  • 路由执行体 Tango 支持 5 种形式的函数或结构体方法作为执行体: func() func(http.ResponseWriter, *http.Request) func(*tango.Context) func(http.Response.Writer) func(*http.Request) struct.Get() func() t := tango.Classic() t.Get("

  • 在以下React应用程序中,有两个路由URLhttp://myapp 正确布线到布局构件。但是,URLhttp://myapp/login 也路由到布局组件,而不是登录。如果我将path=“/login”更改为“/sign”,它将正确路由到登录组件。 React路由器中的“/login”路径将其路由到路由是否有特殊之处?或者我设置这个路由的方式有错误吗?

  • 问题内容: 角度ui路由器的示例演示在起始页面具有以下链接: “ ui-router”的完整网址为或 “关于”的完整网址为或 当我使用durandalJS时,存在一个限制,即默认URL只是“ /”,不能有“ / ui-router”。 Angular ui路由器插件有相同的限制吗? 问题答案: 请参阅此处,默认路由有一个“其他”选项。

  • 我在想这样的事情: 前台有一个不同的布局和风格与管理区域。所以在frontpage中的路由是home、about等等,其中一个应该是子路由。 /home应该呈现到Frontpage组件中,而/admin/home应该呈现在后端组件中。 最终解决方案: 这是我现在使用的最终解决方案。这个例子也像传统的404页面一样有一个全局错误组件。