2013-05-28 11 views
6

मेरे पास एक AngularJS ऐप है जो $routeProvider और $stateProvider का उपयोग करता है। मैं अपने सभी मार्ग/राज्य / से अलग करने के लिए प्राप्त कर सकता हूं।AngularJS: रूट प्रदाता रूट पर नहीं काम करता है

यहाँ मेरी app.js फ़ाइल

var MailStash = angular.module("MailStash", ['ui.compat', 'ngResource', 'ngSanitize', 'ui.directives']). 
    config(function($stateProvider, $routeProvider, $urlRouterProvider) { 
     $routeProvider 
      .when('/', { controller: ListCtrl, templateUrl: '/js/partials/list.html' }); 

     $stateProvider 
      .state('templates', { 
        url: '/templates', 
        abstract: true, 
        templateUrl: '/js/partials/list.html', 
        controller: ListCtrl, 
      }) 
      .state('templates.list', { 
       // parent: 'templates', 
       url: '', 
       views: { 
       'main_content': { 
       templateUrl: '/js/partials/templates.new.html', 
       controller:CreateCtrl, 
       }, 
       } 
      }) 
      .state('templates.view', { 
       parent: 'templates', 
       url: '/{templateId}', 
       views: { 
       'main_content': { 
        templateUrl: '/js/partials/templates.view.html', 
        controller: ViewCtrl, 
       }, 
       }, 
      }) 
      .state('templates.new', { 
       url: '/new', 
       views: { 
       'main_content': { 
        templateUrl: '/js/partials/templates.new.html', 
        controller: CreateCtrl, 
       }, 
       }, 
      }) 
      .state('templates.edit', { 
       parent: 'templates', 
       url: '/edit/{templateId}', 
       views: { 
       'main_content': { 
        templateUrl: '/js/partials/templates.edit.html', 
        controller: EditCtrl, 
       }, 
       }, 
      }) 
    } 
    ) 
    .run(
     [  '$rootScope', '$state', '$stateParams', 
     function ($rootScope, $state, $stateParams) { 
      $rootScope.$state = $state; 
      $rootScope.$stateParams = $stateParams; 
     }] 
    ); 
... 

कुछ भी नहीं होता है जब मैं / करने के लिए जाना लेकिन जब मैं /#templates उचित दृश्य पर जाएं और नियंत्रकों में लात है।

किसी को भी देख सकते हैं कि क्या गलत है मेरी $routeProvider और / क्यों जा रहा है कुछ भी नहीं कर रहा है?

उत्तर

1

आप इस

$routeProvider 
     .when('/templates', { controller: ListCtrl, templateUrl: '/js/partials/list.html' }) 
     .otherwise({ redirectTo: '/templates' }); 

आशा इस में मदद मिलेगी की तरह डिफ़ॉल्ट मार्ग निर्दिष्ट कर सकते हैं!

5

क्यों न केवल $urlRouterProvider का उपयोग करें और / पर जाएं?

$urlRouterProvider.otherwise('/'); 

तब के लिए /

$stateProvider.state({ 
    name: 'home', 
    url: '/', 
    controller: 'HomeCtrl', 
    templateURL: 'home.html' 
}); 
1

एक नए राज्य की स्थापना की अन्यथा, एक त्रुटि पृष्ठ पर रीडायरेक्ट करने के लिए करता है, तो यूआरएल बुरा है अधिक उपयोगी है। लेकिन आप अपनी अनुक्रमणिका में आधार स्थान का संदर्भ देने के लिए <base href="/" /> जोड़ने का प्रयास कर सकते हैं और $ locationProvider.html5Mode (true) जोड़ सकते हैं; सक्षम करने के लिए आपके कॉन्फ़िगरेशन फ़ंक्शन में मार्गों की घोषणा के बाद, अन्यथा आपको यूआरएल में # जोड़ना होगा।

मुझे आशा है कि यह आपकी मदद करेगा।

संबंधित मुद्दे