2017-08-16 87 views
0

我有我的app.js StateProvider配置设置如下图所示:angularjs改变状态的问题

国家“仪表盘”包含了侧边栏和顶部导航栏,并应积极当国家dashboard.home和dashboard.addclient活跃。

app.config(function ($stateProvider, $locationProvider, $urlRouterProvider) { 
    $stateProvider 
     .state('login', { 
      url: '/', 
      templateUrl: 'partials/login.html', 
      controller: 'LoginController' 
     }) 
     .state('dashboard', { 
      url: '/dashboard', 
      templateUrl: 'partials/dashboard.html', 
      controller: 'DashboardController' 
     }) 
     .state('dashboard.home', { 
      url: '/home', 
      templateUrl: 'partials/dashboard.home.html', 
      controller: 'HomeController' 
     }) 
     .state('dashboard.addclient', { 
      url: '/addclient', 
      templateUrl: 'partials/dashboard.addclient.html', 
      controller: 'ClientsController' 
     }) 

    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
    }); 
}); 

的问题是,当仪表盘页面内的链接,用户点击它调用改变状态就像下面的功能:

app.controller('DashboardController', function ($scope, $state) { 
    $scope.AddClient = function() { 
     $state.go('dashboard.addclient'); 
    } 
}); 

但由于某些原因,它正试图网址通话的样子:

http://localhost/dashboard/partials/dashboard.addclient.html

HTML:

指数包含的登录将被装载到一个观点:

<body> 
    <div id="view" ui-view></div> 
</body> 

我所以当我们的用户日志的仪表盘上的其他用户界面视图:

<div id="page-content-wrapper"> 
    <div ui-view></div> 
</div> 
+0

提供您的HTML也 –

+0

@AKA我真的不知道你需要什么HTML,但补充了我认为是必要的。 –

+0

您的仪表板状态应该是抽象的。此外,更新问题并向我们显示您的链接。 https://github.com/angular-ui/ui-router/wiki/Nested-States-&-Nested-Views#abstract-states – yBrodsky

回答

1

看起来像你的模板网址是相对路径,因为它们不以'/'开头。这意味着如果您的状态更改为dashboard.addclient时,如果您的浏览器当前在地址栏中有http://localhost/dashboard,则它只会将您的模板url附加到当前地址。相反,你可以试试这个:

.state('dashboard.addclient', { url: '/addclient', templateUrl: '/partials/dashboard.addclient.html', controller: 'ClientsController' })

+0

谢谢你!一直在看这个好几天。 –