2015-04-01 243 views
0

我有這樣的狀態:角和UI路由器狀態孩子

}).state('sport', { 
    url: "/:sport", 
    templateUrl: '/app/sports/sport.tpl.html', 
    controller: 'SportController', 
    controllerAs: 'controller' 
}); 

和控制器看起來是這樣的:

.controller('SportController', ['$stateParams', function ($stateParams) { 
    var self = this; 

    // Object to hold our parameter 
    self.slug = $stateParams.sport; 
}]); 

所以,我所要做的是這個參數傳遞給另一個州。我已經建立了這樣的:

.config(['$stateProvider', function ($stateProvider) { 

    // Set up our state(s) 
    $stateProvider.state('sport.designer', { 
     url: "/designer", 
     abstract: true, 
     templateUrl: '/app/designer/designer.tpl.html', 
     controller: 'DesignerController', 
     controllerAs: 'controller' 
    }).state('sport.designer.team', { 
     url: "", 
     templateUrl: '/app/designer/team.tpl.html' 
    }).state('sport.designer.kit', { 
     url: "/kit", 
     templateUrl: '/app/designer/kit.tpl.html' 
    }).state('sport.designer.design', { 
     url: "/design", 
     templateUrl: '/app/designer/design.tpl.html' 
    }).state('sport.designer.refine', { 
     url: "/refine", 
     templateUrl: '/app/designer/refine.tpl.html' 
    }).state('sport.designer.order', { 
     url: "/order", 
     templateUrl: '/app/designer/order.tpl.html' 
    }); 
}]) 

和控制器看起來是這樣的:

.controller('DesignerController', ['$stateParams', 'DesignerService', 'HttpHandler', 'Api', function ($stateParams, service, handler, api) { 
    var self = this; 
    var slug = $stateParams.sport; // Get our slug 

    console.log(slug); 
}]); 

因此,有幾個問題在這裏。

  1. 如果設置了這樣的鏈路:UI-SREF = 「sport.designer.team({運動:controller.slug})」那麼該視圖不會從運動狀態移動。
  2. 我使用.team的原因是因爲.designer是一個抽象的狀態和球隊的狀態是裝入

這裏是我的html的運動狀態的默認狀態:

<a ui-sref="sport.designer.team({ sport: controller.slug })">Test</a> 

任何人都可以看到我做錯了什麼?

+0

任何工作小提琴? – Shaxrillo 2015-04-01 18:06:25

回答

0

今天我得到了這個工作。 我的運動狀態保持不變。 我改變了設計師的狀態這樣:

// Set up our state(s) 
$stateProvider.state('designer', { 
    url: ':sport/designer', 
    abstract: true, 
    templateUrl: '/app/designer/designer.tpl.html', 
    controller: 'DesignerController', 
    controllerAs: 'controller' 
}).state('designer.team', { 
    url: '', 
    templateUrl: '/app/designer/team.tpl.html' 
}).state('designer.kit', { 
    url: '/kit', 
    templateUrl: '/app/designer/kit.tpl.html' 
}).state('designer.design', { 
    url: '/design', 
    templateUrl: '/app/designer/design.tpl.html' 
}).state('designer.refine', { 
    url: '/refine', 
    templateUrl: '/app/designer/refine.tpl.html' 
}).state('designer.order', { 
    url: '/order', 
    templateUrl: '/app/designer/order.tpl.html' 
}); 

,然後在我的sport.tpl.html我設置了鏈接:

<div class="container"> 
    <div class="row"> 
     <div class="col-md-12"> 
      <h1>{{ controler.slug }}</h1> 
      <p>This will be the sport homepage.</p> 
      <p><a ui-sref="designer.team({ sport: controller.slug })">Click to get started</a></p> 
     </div> 
    </div> 
</div> 

,就是這樣。設計師,不一定是體育運動的孩子。