2017-01-31 4 views
0

so versuche ich, Routing, um herauszufinden, und jetzt konnte ich es zu versuchen, für grundlegenden Dinge wie www.sdfsfsfs.com/route1 tatAngularJS Routing-Probleme

.when("/route1",{ 
    templateUrl: "route1.html" 
}) 

Aber sind stecken zu arbeiten, um herauszufinden, wie man so etwas wie www.sdfsfsfs.com/route1/jpera zu tun . Ich konnte es durch die Schaffung eines route1 Verzeichnis zu arbeiten und dann in diesem Verzeichnis setzen jpera so ist, dann wäre es

.when("/route1/jpera",{ 
    templateUrl: "jpera.html" 

}) 

sein, aber dann wird die Route auf die URL mit /route1 wird vermasselt und ich bin mir nicht sicher, warum.

+0

Sie meinen, Sie wollen verschachteltes Routing? – SaiUnique

+0

Zum Verschachteln von Routing müssen Sie 'ui-router' verwenden. –

+0

@SaurabhSharma das ist völlig inkorrekt. Sehen Sie das Beispiel hier ~ https://docs.angularjs.org/api/ngRoute/service/$route#example – Phil

Antwort

1

In Winkel-ui-Router, kann u dies wie folgt tun:

angular.module('myapp', ["ui.router"]) 
    .config(function($stateProvider, $urlRouterProvider){ 
      $urlRouterProvider.otherwise('/dashboard'); 
.... 
$stateProvider 
    .state('home', { 
     url: '/home', 
     templateUrl: 'dir1/dir2/home.html', 
     controller: 'homeController' 
    }) 
    .state('home.page1', { 
     url: '/page1', 
     templateUrl: 'dir1/dir2/page1.html',   
     controller: 'page1Controller' 
    }) 
... 

function homeController($scope){ 
//do something 
} 

function page1Controller($scope){ 
//do something 
} 

So page1 ist ein Kind Ansicht des Hauses.

Else, wenn Sie wollen, verwenden Teilvorlagen in eine Layoutvorlage, kann u Ansichten wie diese verwenden: -

.state('home', { 
       url: '/home', 
       //templateUrl declared here will not be picked up 
    views: { 
        //main layout template 
        '': { 
         templateUrl: 'dir1/dir2/home.controller.html', 
         controller: 'homeCtrl', 
         controllerAs: 'vm' 
        }, 
        //[email protected] //partial template. 
        '[email protected]': { 
         templateUrl: 'dir1/dir2/page1.controller.html', 
         controller: 'page1Ctrl', 
         controllerAs: 'vm' 
        }, 
        ... 

     } 
}) 

Hope this u einige Hinweise gibt.