2013-11-10 3 views
9

В начале я просто использовал $ routeProvider следующим образом, и это давало мне то, что я хотел.

angular.module('angularProject', ['angularProject.filters', 'angularProject.services', 'angularProject.directives', 'angularProject.controllers']) 
    .config(['$routeProvider', function($routeProvider) { 
    $routeProvider 
     .when('/home', { 
     title: 'Home', 
     templateUrl: 'partials/home.html', 
     controller: 'homeCtrl' 
     }) 
     .otherwise({redirectTo: '/home'}); 
    }]); 

Но когда я также хотел бы использовать $ stateProvider следующим образом он не дает мне ошибки, но и не позволяет мне изменить состояние ..

var myapp=angular.module('angularProject', ['ui.bootstrap','ui.router','angularProject.filters', 'angularProject.services', 'angularProject.directives', 'angularProject.controllers']) 
    myapp.config(['$routeProvider', '$stateProvider',function($routeProvider,$stateProvider) { 
    $routeProvider 
     .when('/home', { 
     title: 'Home', 
     templateUrl: 'views/home.html', 
     controller: 'homeCtrl' 
     }) 
     .otherwise('/home'); 
    $stateProvider 
     // .state('index', { 
      // url: "", 
      // views: { 
       // "viewA": { 
        // template: "index.viewA" 
       // }, 
       // "viewB": { 
        // template: "index.viewB" 
       // } 
      // } 
     // }) 
     .state('route1', { 
      url: "/route1", 
      views: { 
       "viewA": { 
        template: "route1.viewA" 
       }, 
       "viewB": { 
        template: "route1.viewB" 
       } 
      } 
     }) 
     .state('route2', { 
      url: "/route2", 
      views: { 
       "viewA": { 
        template: "route2.viewA" 
       }, 
       "viewB": { 
        template: "route2.viewB" 
       } 
      } 
     }) 
    // .otherwise({redirectTo: '/home'}); 
    }]); 

Любая помощь по использованию $ stateProvider с $ routeProvider будет оценен.

ответ

10

Я не думаю, что это возможно, и я не думаю, что ui.router был построен для использования с ngRoute.
Согласно ui-router docs, вы должны использовать собственную реализацию ui-router$routeProvider, называемую $urlRouterProvider.

+3

В основном исправлены: они не предназначены для совместного использования, однако 'ui.router' предоставляет' $ routeProvider' как часть уровня совместимости для использования при миграции из 'ngRoute'. '$ UrlRouterProvider' * * для управления URL-адресами, но в основном только для перенаправления и' other() '(catch-all) URL-адресов. –

+1

Yah .. Вы оба правы .. Но $ stateProvider предназначен для изменения внутренних представлений вашего интерфейса. Про корневой URL-адрес и указание того, что этот контроллер должен использоваться ... Например, я хочу использовать его таким образом .. $ urlRouterProvider.otherwise ('/ дом'); $ urlRouterProvider .when ('/ дом', { \t название: 'Дом', \t templateUrl: 'кажд/home.html', \t контроллер: '' homeCtrl }) – pawan9977

+0

Я решил проблему ребята. . Я предполагаю, что использовал $ urlrouterProvider неправильно. У вас так много предложений. – pawan9977

Смежные вопросы