Ui路由器-嵌套视图未显示($viewContentLoaded未激发)



views/index.jade:

extends layout
block content
  div(ui-view)

views/partials/user.jade

h1 Route 1
hr
a(ui-sref=".profile") Show Content
div(ui-view)

js/appStates.js

'use strict';
var app = angular.module('myApp');
app.config(['$stateProvider', '$urlRouterProvider',
  function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise("/user");
    $stateProvider
      .state('user', {
        url: '/user',
        templateUrl: 'partials/user'
      })
      .state('user.profile', {
        url: '/profile',
        template: '<h1>My Contacts</h1>'
      })
    ;
  }
]);

"我的联系人"永远不会出现。请注意,链接看起来确实正确。不确定发生了什么。

我尝试了以下方法:

http://tech.endeepak.com/blog/2014/05/03/debugging-angular-ui-router/

我注意到"$viewContentLoaded"从未在嵌套视图中调用过,不知道为什么。有什么不应该调用的情况吗?

在IRC频道的快速帮助下,我设法解决了这个问题。

问题出在jade文件的第4行:

div(ng-view)

出于某种原因,翡翠默认情况下会渲染值等于名称的空属性。结果html是:

<div ng-view="ng-view"></view>

一个简单的解决方法是在翡翠中将其设置为空值

div(ng-view="")

现在它起作用了。

再次感谢IRC的工作人员。

如果您使用gump,请将文档类型指定为html5,这样jade就知道匿名标签是有效的

咖啡脚本示例

# Compile jade to html
gulp.task 'jade', ->
  gulp.src paths.jade
  .pipe jade({pretty: true, doctype: 'html')

相关内容

  • 没有找到相关文章

最新更新