UI-ROUTER状态控制器未更新范围



我正在使用UI-Router来控制单页应用程序的状态。我有一系列我对这些的国家:

    $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的抽象状态,将对所有操作使用相同的控制器。

问题是来自子控制器的" list.html"文件无法从控制器中看到值。

我已经为此提供了一个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';
  }

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

我已经解决了问题。

我错过了国家概念。首先,我需要在app.main状态上使用一个,以便它可以渲染app.main.users state。我的控制器声明也是错误的。

这个plunkr正在使用所需的方案。

感谢您的帮助。

最新更新