В первый раз я перемещаться по вложенным маршруту, я получаю это исключение, «TypeError: Не удается прочитать свойство„контроллера“неопределенных»TypeError: Не удается прочитать свойство «контроллер» неопределенной
Это вызывает мое приложение не работайте правильно. Однако, если я перемещаюсь вокруг, он начинает работать отлично.
На приведенном ниже рисунке показаны значения переменных, а строка кода, которая выбрасывает, имеет неопределенный контроллер, который вызывает проблемы. Этот код является частью Ionic Framework.
Нажмите на изображение, чтобы увидеть в полный размер
Это мой единственный JavaScript-файл, который определяет только модуль.
angular.module("sa", ["ionic"])
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins.Keyboard) {
window.cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
window.StatusBar.styleDefault();
}
});
})
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state("login", {
url: "/login",
templateUrl: "app/manager/login.html"
})
.state("manager", {
abstract: true,
url: "/manager",
templateUrl: "app/manager/menu.html"
})
.state("manager.jobs", {
url: "/jobs",
views: {
"managerContent": {
templateUrl: "app/manager/requested-jobs.html"
}
}
})
.state("manager.detail", {
url: "/detail",
views: {
"managerContent": {
templateUrl: "app/manager/requested-job-detail.html"
}
}
});
$urlRouterProvider.otherwise("/login");
});
Это login.html, что нагрузка правильно. Он также позволяет клику и навигации по кнопке.
<ion-view view-title="Login" >
<ion-nav-bar class="bar-light"></ion-nav-bar>
<ion-content class="has-header" >
<ion-list>
<ion-item href="#/manager/jobs">
Manager
</ion-item>
</ion-list>
</ion-content>
</ion-view>
Это файл меню сторона.
<ion-side-menus enable-menu-with-back-views="false">
<ion-side-menu-content>
<ion-nav-bar class="bar-light">
<ion-nav-back-button>
</ion-nav-back-button>
<ion-nav-buttons side="left">
<button menu-toggle="left" class="button button-icon icon ion-navicon"></button>
</ion-nav-buttons>
<ion-nav-view name="managerContent"></ion-nav-view>
</ion-nav-bar>
</ion-side-menu-content>
<ion-side-menu side="left">
<ion-header-bar class="bar-assertive">
<span class="title">Cluber</span>
</ion-header-bar>
<ion-content>
<ion-list>
<ion-item class="item-icon-right" menu-close ui-sref="login">
<i class="icon ion-ios-arrow-right icon-accessory"></i>Logout
</ion-item>
</ion-list>
</ion-content>
</ion-side-menu>
</ion-side-menus>
Это файл, который загружается в содержание меню при naviaged к.
<ion-view view-title="Dashboard">
<ion-content has-bouncing has-header="true">
<ion-list>
<ion-item class="item-border item-icon-right" ui-sref="manager.detail">
Clean Apartment
<i class="icon ion-ios-arrow-right icon-accessory"></i>
</ion-item>
<ion-item class="item-border item-icon-right" ui-sref="manager.detail">
Repair Side Walk
<i class="icon ion-ios-arrow-right icon-accessory"></i>
</ion-item>
</ion-list>
</ion-content>
</ion-view>
Это самый простой пример у меня есть, что всегда воспроизводит исключение JavaScript. Опять же, это происходит только в первый раз, к которому осуществляется «manager.jobs».
Вы можете использовать 'debug' проверить значение' enteringHeaderBar' перед вызовом 'enteringHeaderBar.controller ' –
Похоже, что 'enterHeaderBar' не определен. – mwilson
Да, вводHeaderBar не определен. Это значение вычисляется на две строки выше ошибки. – Karl