javascript - UI-路由器状态 Controller 不更新范围

标签 javascript angularjs angular-ui-router

我正在使用 UI 路由器来控制单页面应用程序的状态。我有一个大的状态链,我将其缩小到这些:

    $stateProvider
    .state('app', {
      url: "/",
      abstract: true
    })
    .state('app.main', {
      url: "/main",
      abstract: true
    })
    .state('app.main.users', {
      url: "/users",
      abstract: true,
      controller: 'UsersController',
      controllerAs: 'uc'
    })
    .state('app.main.users.list', {
      url: "/list",
      templateUrl: "list.html",
    });

想象一下,这个 app.main.users 是 CRUD 的抽象状态,它将使用相同的 Controller 来执行所有操作。

问题是子 Controller 中的“list.html”文件无法看到 Controller 中的值。

我已经针对该问题提供了一个 plunkr 示例:Plunkr

完整代码如下:

    var myapp = angular.module('myapp', ["ui.router"])
myapp.config(function($stateProvider, $urlRouterProvider) {

  $urlRouterProvider.otherwise("/");

  $stateProvider
    .state('app', {
      url: "/",
      abstract: true
    })
    .state('app.main', {
      url: "/main",
      abstract: true
    })
    .state('app.main.users', {
      url: "/users",
      abstract: true,
      controller: 'UsersController',
      controllerAs: 'uc'
    })
    .state('app.main.users.list', {
      url: "/list",
      templateUrl: "list.html",
    });
})

myapp.controller('UsersController', usersController);
  function usersController() {
    console.log("UsersController instantiated");
    var vm = this;
    vm.user = 'username';
  }

如果您有任何想法,请告诉我。我找不到解决方案。 谢谢!

最佳答案

我已经解决了这个问题。

我遗漏了国家概念中的一些东西。首先,我需要一个 on my app.main 状态,以便它可以呈现 app.main.users 状态。我的 Controller 声明也是错误的。

这个Plunkr正在处理所需的场景。

感谢您的帮助。

关于javascript - UI-路由器状态 Controller 不更新范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47512008/

相关文章:

javascript - 将数据从 MVC Controller 传递到 Angular View ,而不在最终 html 中显示数据值

javascript - Angular Material 的 md-nav-bar 无法与 ui-router 一起正常工作

javascript - 使用不透明类型对 Typescript 记录进行索引

javascript - 请解释 .call(false) 的奇怪行为

javascript - 使用嵌套 $.each 循环对象

javascript - 在 fancybox 内绑定(bind) Angular 范围无法按预期工作

javascript - .each(function() 中包含多个函数 - jQuery

angularjs - 指令范围属性根据属性名称中断

angularjs - 如何在整个页面上显示 ui-router 状态?

angularjs - 如何让 AngularJS ui-router 正确响应浏览器页面刷新?