.state('init.home')和.state('/ home')之间的区别

时间:2015-08-12 11:06:15

标签: angularjs angular-ui-router

我是angularjs的新手。你能解释一下我之间的区别吗? .state('init.home')和.state('/ home')

谢谢Inadvance。

2 个答案:

答案 0 :(得分:1)

我相信你指的是ui-router,在这种情况下,这就是区别:

.state('init.home')将是您可以使用<a ui-sref="init.home">Click me</a>在HTML模板中引用的内容,它会将用户转换为该状态。

那状态看起来像这样:

.state('init.home', {
  url: "/home",
  templateUrl: "views/home.html",
  controller: "HomeController"
}) 

通常你也会将.state('init')作为父语句,例如:

.state('init', {
  abstract: true,
  resolve: {
    authenticated: ['$auth', function($auth) {
      if (!$auth.isAuthenticated()) {
        $state.go('login');
      }
  }
}) 

这将确保在'init'下向子状态的任何转换都可以访问'authenticated'以确保用户已登录,例如。

.state('/ home')实际上并不有效。您可以改为定义状态并使用'url'参数指定位置:

.state('home', {
  url: '/home'
}

此页面可能是一个很好的资源审核:https://github.com/angular-ui/ui-router/wiki/URL-Routing

答案 1 :(得分:0)

国家可以互相嵌套。有几种嵌套状态的方法:

使用'点符号'。例如.state('contacts.list',{})...

请阅读此article了解详情。