2015-10-26 194 views
0

我已经设置了父/子路线,当我使用state.go更改代码的状态一切的伟大工程()。当我尝试仅使用URL直接访问子路由时,问题就出现了。当我这样做时,控制器会多次初始化。角UI路由器控制器多次实例 - 直接路由

这里是我的app.js

$stateProvider 
    .state('home', { 
     url: "/", 
     templateUrl: "Views/home.html", 
     controller: 'HomeController', 
     controllerAs: 'vm' 
    }) 
    .state('ticketsMaster', { 
     abstract: true, 
     templateUrl: "Views/tickets-master.html", 
     url: "^/performances?featureCode&theatreId", 
     controller: 'TicketsMasterController', 
     controllerAs: 'vm' 
    }) 
    .state('ticketsMaster.performances', { 
     url: "^/performances?featureCode&theatreId", 
     templateUrl: "Views/performances.html", 
     controller: 'PerformancesController', 
     controllerAs: 'vm' 
    }) 
    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
    }); 

home.html的是我的主网页,我有我的用户界面视图

我也有我的票,master.html其中另一个界面视图这加载我的孩子的意见(表演)。

当直接前往/performances?featureCode=1111&theatreId=1它加载我的TicketsMasterController和性能控制器2或3次。

任何帮助,将不胜感激。

+0

什么的路由他们的点''' “^ /表演?featureCode&theatreId”,'''在两种不同的状态? – Yeysides

+0

这是一个真正的问题,你是否必须在每个状态下声明一个url来加载模板? – Yeysides

+0

这是一个很好的问题 - 我只把它放在那里,因为我只能从ticketsMaster状态中获得它。如果我仅将它放在ticketsMaster.performances状态中,我根本无法看到它们。我完全摆脱了主人的网址,而且我仍然有同样的问题。 – aoakeson

回答