Переменная в контроллере всегда неопределена в View - AngularJS - PullRequest
0 голосов
/ 22 июня 2019

Я использую es6 AngularJS и этот код объявляет простую переменную

export default class HomeCtrl {
    constructor() {
        'ngInject';

        this.num = [1,2];
    }
}

в представлении у меня просто есть

<span>{{ vm.num === undefined }}</span>

но это всегда говорит true

Я использую этот конфиг, поэтому я не уверен, что вызвало проблему

$stateProvider
  .state('app.home', {
    url: '/',
    controller: 'HomeCtrl',
    contollerAs: 'vm',
    template: homeView,
  });

UPDATE:

Я обнаружил, что это конфликтует с AppCtrl, что я указываю, что это весь мой код конфигурации

export default angular.module('app', [
  ngTouch,
  ngSanitize,
  uiRouter,
  animations,
  directives,
  services,
  controllers,
  components,
])
.config(function($stateProvider, $locationProvider, $urlRouterProvider) {
  'ngInject';

  $stateProvider
    .state('app', {
      abstract: true,
      controller: 'AppCtrl',
      controllerAs: 'vm',
      template: appView,
    })
    .state('app.home', {
      url: '/',
      controller: 'HomeCtrl',
      contollerAs: 'vm',
      template: homeView,
    });

  $urlRouterProvider.otherwise('/');

  $locationProvider.html5Mode(true);
}).name;

когда я использую vm в homeView.html, вызванным vm был vm AppCtrl, который является моим родительским контроллером

1 Ответ

0 голосов
/ 03 июля 2019

Нашли исправление.Исправлена ​​проблема, связанная с изменением моего провайдера состояния, например:

$stateProvider
  .state('app.home', {
      url: '/',
      controller: 'HomeCtrl as vm',
      template: homeView,
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...