AngularJS: Multiple views with routing without losing scope

前端 未结 4 946
陌清茗
陌清茗 2021-02-04 11:07

I\'m trying to implement a classic list/details UI. When clicking an item in the list, I want to display an edit form for that item while still displaying the list. I\'

4条回答
  •  日久生厌
    2021-02-04 11:38

    Multiple views are not supported in core AngularJS. You can use this library for this purpose which supports any amount of nested views on the page, where each level is configured independently with its own controller and template:

    http://angular-route-segment.com

    It is much simpler to use than ui-router. Sample config may look like this:

    $routeSegmentProvider.
    
    when('/section1',          's1.home').
    when('/section1/prefs',    's1.prefs').
    when('/section1/:id',      's1.itemInfo.overview').
    when('/section1/:id/edit', 's1.itemInfo.edit').
    when('/section2',          's2').
    
    segment('s1', {
        templateUrl: 'templates/section1.html',
        controller: MainCtrl}).
    
    within().
    
        segment('home', {
            templateUrl: 'templates/section1/home.html'}).
    
        segment('itemInfo', {
            templateUrl: 'templates/section1/item.html',
            controller: Section1ItemCtrl,
            dependencies: ['id']}).
    
        within().
    
            segment('overview', {
                templateUrl: 'templates/section1/item/overview.html'}).
    
            segment('edit', {
                 templateUrl: 'templates/section1/item/edit.html'}).
    
            up().
    
        segment('prefs', {
            templateUrl: 'templates/section1/prefs.html'}).
    
        up().
    
    segment('s2', {
        templateUrl: 'templates/section2.html',
        controller: MainCtrl});
    

提交回复
热议问题