2015-09-13 4 views
0

Структура моего приложения:ионная маршрутизация не работает, как я ожидал

enter image description here

Основные app.js в корне:

angular.module('app', ['ionic', 
    'app.intro', 
    'app.main', 
    'app.services' 
]) 
.run(function($ionicPlatform) { 
    $ionicPlatform.ready(function() { 
     ...... 
    }); 
}) 
.config(function($stateProvider, $urlRouterProvider) { 
}); 

приложение/интро/intro.js:

angular.module('app.intro',['app.intro.controller']) 

.config(function($stateProvider, $urlRouterProvider) { 

    alert('app.intro'); 
    $stateProvider 
    .state('intro', { 
     url: '/', 
     templateUrl: 'app/intro/index.html', 
     controller: 'IntroCtrl' 
    }); 
    $urlRouterProvider.otherwise('/'); 
}); 

приложение/интро/controller.js

angular.module('app.intro.controller',[]) 
    .controller('IntroCtrl',function($scope,$state,$ionicSlideBoxDelegate) { 

     $scope.startMain = function() { 
      $state.go('main'); 
     }; 
    }); 

Он отлично работает. Начальная страница отображается правильно, пока я не добавлю основной модуль, который является sidemenu.

приложение/основные/main.js:

angular.module('app.main',['app.main.controller']) 

.config(function($stateProvider, $urlRouterProvider) { 
$stateProvider 
.state('main', { 
    url: '/main', 
    templateUrl: 'app/main/menu.html', 
    controller: 'MainCtrl' 
}) 
.state('main.news', { 
    url: '/news', 
    views: { 
     'menuContent': { 
      templateUrl: 'app/main/news.html' 
     } 
    } 
}) 
.state('main.share', { 
    url: '/share', 
    views: { 
     'menuContent': { 
      templateUrl: 'app/main/share.html' 
     } 
    } 
}); 

$urlRouterProvider.otherwise('/main/news'); 

});

Вступительная страница больше не будет отображаться. Вместо этого страница новостей всегда будет отображаться при запуске приложения. Я очень новичок в ионной, так что я не очень хорошо разбираюсь в маршрутизации URL. Кто-нибудь может сказать, что я сделал неправильно? Благодарю.

Edit:

menu.html:

<ion-side-menus enable-menu-with-back-views="false"> 
    <ion-side-menu-content> 
     <ion-nav-bar class="bar-positive"> 
      <ion-nav-back-button></ion-nav-back-button> 
      <ion-nav-buttons side="left"> 
       <button class="button button-icon button-clear ion-navicon" menu-toggle="left"></button> 
      </ion-nav-buttons> 
     </ion-nav-bar> 
     <ion-nav-view name="menuContent"></ion-nav-view> 
    </ion-side-menu-content> 
    <ion-side-menu side="left"> 
     <ion-header-bar class="bar-stable"> 
      <h1 class="title">Menu</h1> 
     </ion-header-bar> 
     <ion-content> 
      <ion-list> 
       <ion-item menu-close href="#/main/news">News</ion-item> 
      </ion-list> 
      <ion-list> 
       <ion-item menu-close ng-click="logout()">Logout</ion-item> 
      </ion-list> 
     </ion-content> 
    </ion-side-menu> 
</ion-side-menus> 
+0

Вы пытались удалить предупреждение, которое вы положили в app.intro? потому что его, похоже, блокирует поток кода. также какова цель для разных .config() и $ stateProviders через ваши модули? разве это не усложняет ситуацию? – agpt

+0

Пожалуйста, поделитесь своим вопросом 'menu.html'. –

+0

Добавлено menu.html. –

ответ

0

Я считаю, что этот вопрос является "" в ваших именах маршрутов, это тоже немного, но я считаю, что это относится к подстанции и не выполняет полный переход по маршруту. Если вы удалите точки, они должны работать правильно.

Кроме того, $ urlRouterProvider.otherwise ('/ main/news'); будут ли страницы по умолчанию получать новости

+0

Даже просмотр новостей, показывающий пробел, когда я заменяю ** main.news ** на ** news **. –