Я использую 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, который является моим родительским контроллером