Javascript 基本离子路由问题

Javascript 基本离子路由问题,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我有一个根状态,它不是抽象的 $stateProvider .state('app', { url: "/app", templateUrl: "templates/menu.html", controller: 'AppCtrl' }) .state('app.dashboard', { url: '/dashboard', views: { 'landing': { templateUrl: '

我有一个根状态,它不是抽象的

$stateProvider
  .state('app', {
     url: "/app",
     templateUrl: "templates/menu.html",
     controller: 'AppCtrl'
   })
   .state('app.dashboard', {
     url: '/dashboard',
     views: {
       'landing': {
         templateUrl: 'templates/dashboard.html',
         controller: 'DashboardCtrl'
       }
     }
   });
$urlRouterProvider.otherwise('/app');
现在,我的问题是:

  • 我转到url:“/app”。它工作正常,AppCtrl将我带到“/dashboard”
  • 我转到url:“/dashboard”。它也可以工作,并且仪表板内容已加载
  • 现在,我转到url:“/dashboar”。我现在在地址栏中看到的url是“/app”,但也可以看到仪表板模板。这是为什么??不应该是这样的,对吧

    • 状态
      app.dashboard
      app
      的子项,因此其url是
      /app/dashboard
      ,而不是
      /dashboard

      然后,当您转到
      /dashboar
      时,由于
      $urlRouterProvider,因此未指定此url。否则('/app')您将被重定向到
      /app

      由于您向我们展示的代码,我认为您使用的是侧菜单,因此在
      /templates/menu.html
      中:

      
      

      您正在调用
      app.dashboard
      的视图“landing”,因此
      名称
      参数也应该是“landing”

      然后,如果侧菜单具有其他状态,则视图的名称也应为“landing”

      如果您没有使用侧菜单,请向我们提供
      menu.html
      内容以及
      dashboard.html


      希望它对您有所帮助。

      您可以使用plunkr或类似的东西吗?我已经将所有代码都放在这里了……老实说,这基本上很简单。当我输入错误的url时,模板没有被卸载。不知道为什么AppCtrl看起来像什么?它会将你重定向到app.dashboard吗?@Tim是的,但只需点击一个按钮……不会加载。即使是重定向,它仍然会显示“/dashboard”url,对吗?。不是“/app”,并且仍然加载了仪表板内容?我觉得你的路由器代码很好,没有plunkr或codepen很难说,对不起!