javascript - 为什么 ng-view 不渲染我的模板?

标签 javascript angularjs angular-ui-router

我坚持将 ui-router 集成到我的 Angular 应用程序中。 为了简单起见,它可以工作,只是模板不会被渲染。 我也没有收到任何错误。

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 加载所有部分,但这应该很重要。 我之前使用过普通的路由提供商,效果很好,我尝试“升级”。

我做错了什么还是我发现了一个错误?

最佳答案

看起来您正在使用 Jade 。省略属性的值会使该值作为属性名称,因此您生成/呈现的 HTML 看起来像

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

当 ui-router 在您的状态中查找名为 'ui-view' 的 View 时,它找不到它。当它在模板中查找名为 '' 的 View 时,它找不到它。您需要将属性设置为空字符串,以便 ui-router 可以找到默认值 ''

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

关于javascript - 为什么 ng-view 不渲染我的模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26043289/

相关文章:

javascript - 如何在打开之前从 react-native 打开 Gmail 并传递照片

javascript - 它如何用 highcharts 实现这个图表?

angularjs - 如何管理<ons-list>中的某个轮播

javascript - 包括/排除 gulp.src 的 glob

javascript - 通过 Selenium Webdriver(JS 绑定(bind))以编程方式与 Firefox 开发人员工具交互

javascript - 带有文件上传的 AngularJs Ajax POST 表单

javascript - 如何在 onClick 中绑定(bind) angularjs 的数据作为参数

javascript - Angular - router.navigate() 不重定向到目标页面

javascript - 带有正则表达式的 Ui-router 路由参数

angularjs - 如何通过 Express 路由到多个 Angular 应用程序?