私のアプリケーションのメニューレイアウトを再構成するためにstateHelperを使用しようとすると、エラーが発生しました。とき私のアプリのロードとapp.jsに$state.go('app.user.home')
実行ui-routerでstateHelperを使用するユーザーが子である状態 ''から 'app.user.home'を解決できません抽象的な状態のアプリケーション抽象状態
Error: Could not resolve 'app.user.home' from state ''
at Object.transitionTo (ionic.bundle.js:49177)
at Object.go (ionic.bundle.js:49110)
at app.js:220
これが起こる:220
私の状況は、管理ユーザーが特定のビューのみ管理者とサイドメニューを開き、「ハンバーガー・スタック」アイコンを示しているということですにナビゲートすることができます。
管理者以外のユーザーが同じビューに入ると、代わりにホームビューにリンクする「ホーム」アイコンが表示されます。
管理者でも管理者でもない人は、両方とも移動できる追加のビューにui-sref
のリンクを持つホームビューを持っています。
管理者用に「ハンバーガーアイコン」が表示されている場合、ホームビューへのui-sref
はサイドメニューに移動されます。
これは私のstateHelperProvider
コードです。
.config(function(stateHelperProvider, $urlRouterProvider, $ionicConfigProvider) {
stateHelperProvider
.state({
name: 'app',
url: '/',
abstract: true,
templateUrl: 'templates/menu.html',
controller: 'MenuCtrl',
})
.state({
name: 'app.user',
url: '/user',
abstract: true,
children:[
{
name: 'app.user.home',
url: '/home',
templateUrl: 'templates/landing.html',
controller: 'HomeCtrl'
},
{
name: 'app.user.board',
url: '/board',
templateUrl: 'templates/pta-board.html',
controller: 'BoardCtrl'
},
{
name: 'app.user.events',
url: 'events',
templateUrl: 'templates/events.html',
controller: 'EventsCtrl'
},
{
name: 'app.user.chatrooms',
url: '/chat-rooms',
templateUrl: 'templates/chat-rooms.html',
controller: 'RoomsCtrl',
children:[
{
name: 'app.user.chatrooms.chatroom',
url: '/room',
templateUrl: 'templates/chat-room.html',
params:{
roomId: null,
chatters: null
},
controller: 'ChatCtrl'
}
]
},
{
name: 'app.user.profile',
url: '/profile',
templateUrl: 'templates/user-profile.html',
params:{
isNewUser: null
},
controller: 'UserCtrl'
},
{ name: 'app.user.admin',
url: 'admin',
abstract: true,
children:[
{
name: 'app.user.admin.calendar',
url: '/calendar',
params:{
selectedEvent: null,
calendarTitle: 'Volunteer',
isVolunteerSignup: true
},
templateUrl: 'templates/rcalendar.html',
controller: 'CalendarCtrl'
},
{
name: 'app.user.admin.volunteers',
url: '/volunteers',
params:{
thisHoursVolunteers: null,
thisEvent: null
},
templateUrl: 'templates/admin-interact.html',
controller: 'VolunteerCtrl'
},
{
name: 'app.user.admin.roles',
url: '/roles',
templateUrl: 'templates/roles.html',
controller: 'RoleCtrl'
},
{
name: 'app.user.admin.settings',
url: '/settings',
templateUrl: 'templates/settings.html',
controller: 'SettingsCtrl'
}
]
}
]
})
.state({
name: 'login',
url: '/login',
templateUrl: 'templates/login.html',
controller : 'LoginCtrl'
})
.state({
name: 'signup',
url: '/signup',
templateUrl: 'templates/signup.html',
controller : 'SignupCtrl'
});
// if none of the above states are matched, use this as the fallback
$urlRouterProvider.otherwise('/home');
$ionicConfigProvider.scrolling.jsScrolling(false);
});
私のサイドメニュー、menu.html、template;
<ion-side-menus enable-menu-with-back-views="false">
<ion-side-menu-content>
<ion-nav-bar ng-class="{'has-subject': subject}"
class="white-font bar-header bar-positive">
<!-- <ion-nav-back-button></ion-nav-back-button> -->
<ion-nav-buttons side="left" >
<button ng-if="$root.isAdmin" class="button button-icon button-clear ion-navicon" menu-toggle="left">
</button>
<button ng-if="!$root.isAdmin" class="button button-icon button-clear ion-home" ui-sref="app.user.home">
</button>
</ion-nav-buttons>
</ion-nav-bar>
<ion-nav-view></ion-nav-view> <!-- ionic's equivalent to ui-view -->
</ion-side-menu-content>
<ion-side-menu class="side-menu" width="140" side="left">
<ion-header-bar class="white-font bar-header bar-positive">
<h1 class="title">Admin Menu</h1>
</ion-header-bar>
<ion-content>
<ion-list>
<ion-item menu-close>
<a class="button button-block button-clear button-dark" ui-sref="app.user.admin.calendar({ calendarTitle: 'Calendar', isVolunteerSignup: false })">Calendar</a>
</ion-item>
<ion-item menu-close>
<a class="button button-block button-clear button-dark" ui-sref="app.user.admin.roles">Roles</a>
</ion-item>
<ion-item menu-close>
<a class="button button-block button-clear button-dark" ui-sref="app.user.home">Main Menu</a>
</ion-item>
<ion-item menu-close>
<a class="button button-block button-clear button-dark" ui-sref="app.user.admin.settings">School Settings</a>
</ion-item>
</ion-list>
</ion-content>
</ion-side-menu>
</ion-side-menus>
次に私の家の景色。