2014-09-25 57 views
2

我坚持将ui-router整合到我的角度应用程序中。 为了简单起见,它可以工作,只有模板不会呈现。 我也没有得到任何错误。ng-view为什么不渲染我的模板?

HTML布局文件

div.navbar.navbar-default.navbar-fixed-top 
    ul.nav.navbar-nav 
    li 
     a(ui-sref='index') Home 
    li 
     a(ui-sref='about') About 

div.container 
    div.view-frame(ui-view) 

局部模板的主页(约长相相似)

div.row(ng-controller='HomeCtrl') 
    div.col-sm-12 
    h1.lead Welcome 

我的路线

$stateProvider 
    .state('about', { 
    url: '/about/', 
    templateUrl: '/partials/about.html' 
    //template: '<h1>Test</h1>' doesn't work as well 
    }) 
.state('index', { 
    url: '/', 
    templateUrl: '/partials/index.html' 
    }) 

当我点击其中一个链接并检查我的网络流量时,模板/部分也会加载url更改。 我甚至可以在Chrome开发人员工具中看到我的html的正确预览。 我唯一的问题是,ui路由器会将它加载到ui-view指令中。

我使用最新的Chrome和最新版本的ui-router。 我通过api加载了所有的partials,但无论如何,这应该很重要。 我以前使用过正常的路由提供程序,而且一个工作得很好,我尝试'升级'。

我做错了什么,或者我在这里发现了一个错误?

回答

2

看起来像你正在使用玉石。离开关闭属性的值使作为属性名称,这样你生成/渲染HTML看起来像

<div class="view-frame" ui-view="ui-view"></div> 

当UI路由器会在你的状态称为'ui-view'视图中的值,它不能找到它。当它在您的模板中查找名为''的视图时,它无法找到它。您需要将属性设置为空字符串,因此UI路由器可以找到''

div.view-frame(ui-view='') 
+0

哦,亲爱的默认,我恨我自己没有看到在森林的树。感谢您解决....... – Silom 2014-09-25 16:22:02