ui路由器加载所有视图

时间:2014-07-22 19:19:34

标签: angularjs angular-ui-router

我的ui路由器按照我想要的方式运行...最终,但似乎它加载了一个新视图......它还暂时加载该状态下的所有其他视图,然后快速删除它们。是什么给了什么?

编辑:这是确定的情况。每次点击新链接时,我都可以在firebug中看到两个视图的GET请求。

WriterSarah.config ($stateProvider, $urlRouterProvider) ->
  $urlRouterProvider
    .when('/', 'about')
    .otherwise('/')

  $stateProvider

  .state('app' ,
    url: '/'
    views:{
      'public':{
        templateUrl: '/assets/cats/cat_index.html.slim'
        controller: 'CatsController'
      }
      'edit':{
        templateUrl: '/assets/cats/edit/cat_index_edit.html.slim'
        controller: 'CatsController'
      }
    }
  )


  .state('app.cat',
    url: "category/:title"
    views:{
      'public':{
        templateUrl: '/assets/cats/cat_show.html.slim'
        controller: 'CatsController'
      }
      'edit':{
        templateUrl: '/assets/cats/edit/cat_show_edit.html.slim'
        controller: 'CatsController'
      }
    }

  )

  .state('app.about',
    url: "about"
    views:{
      'public':{
        templateUrl: '/assets/cats/cat_about.html.slim'
        controller: 'CatsController'
      }
      'edit':{
        templateUrl: '/assets/cats/edit/cat_about_edit.html.slim'
        controller: 'CatsController'
      }
    }
  )

  .state('app.contact',
    url: "contact"
    views:{
      'public':{
        templateUrl: '/assets/cats/cat_contact.html.slim'
        controller: 'CatsController'
      }
      'edit':{
        templateUrl: '/assets/cats/edit/cat_contact_edit.html.slim'
        controller: 'CatsController'
      }
    }
  )

在我的HTML中,如果我有:

<div ui-view="edit"></div>

它将快速加载ui-view =“public”一瞬间,然后在此之后加载“编辑”。

1 个答案:

答案 0 :(得分:0)

ng-cloak可能是解决方案,https://docs.angularjs.org/api/ng/directive/ngCloak

  

ngCloak指令用于防止浏览器在加载应用程序时以原始(未编译)形式短暂显示Angular html模板。使用此指令可避免由html模板显示引起的不良闪烁效应。