javascript - Ui Router - 嵌套 View 未显示($viewContentLoaded 未触发)

标签 javascript node.js angularjs angular-ui-router nested-views

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”从未在嵌套 View 上调用,不知道为什么。 有哪些情况不应该调用它?

最佳答案

通过 IRC channel 的快速帮助,我成功解决了这个问题。

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

div(ng-view)

出于某种原因,默认情况下,jade 会呈现值等于名称的空属性。 所以结果 html 是:

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

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

div(ng-view="")

现在它可以工作了。

再次感谢 IRC 的工作人员。

关于javascript - Ui Router - 嵌套 View 未显示($viewContentLoaded 未触发),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26426505/

相关文章:

javascript - Angular JS 中的必填字段验证

javascript - 弹出窗口加载时停止JavaScript音频

javascript - 在多个输入字段上粘贴多个数字

javascript - 中止所有 axios 待处理请求并创建新的

javascript - 使用 Puppeteer 在网站中查找最大的图像

javascript - Jasmine 测试中未定义的 AngularJS $scope.$watch 回调函数参数

javascript - Angular Google map 地理编码回调

javascript - 为什么javascript关闭页面标签?

javascript - NodeJs 加密 key 创建(google kms key 导入) NodeJs

Node.js Date 命令创建了错误的日期