我正在使用Angular和ui-router。我無法啓動嵌套控制器,但如果狀態不是嵌套的,控制器將啓動。AngularUI路由器:嵌套狀態不啓動控制器
該URL是從DnaNodeListCtrl模板生成的。該模板生成看起來像一個正確的URL: http://localhost:8080/#/v1/dnanodes/a9bfd497-ce6b-4832-909e-506a9b29e46e
我的代碼如下。爲什麼我無法啓動嵌套控制器?
config.js:
var dnaMgrApp = angular.module('dnaMgrApp', [
'ngRoute',
'ui.router',
'dnaMgrControllers',
'dnaMgrRestService'
]);
dnaMgrApp.config(function($stateProvider, $urlRouterProvider) {
//
// For any unmatched url, redirect to /state1
$urlRouterProvider.otherwise("/");
//
// Now set up the states
$stateProvider
.state('nodeList', {
url: "/",
templateUrl: 'templates/dnaNodeList.html',
controller: 'DnaNodeListCtrl'
})
.state('nodeList.nodeDetail', {
url: "v1/dnanodes/:nodeId",
templateUrl: 'templates/dnaNodeSummary.html',
controller: function($scope){
$scope.title = 'My DNA';}
});
});
模板:
<div id="body-container" >
</div><div id="tablediv">
<div ng-repeat="node in dnaNodes">
<div class="dnanode">
<a ui-sref="nodeList.nodeDetail({nodeId:node.id})">
<table>
<tr><td>{{node.geneName}}</td><td><img src="{{node.statusIcon}}"></td></tr>
<tr><td colspan="2">2 DNA Pathways</td></tr>
</table>
</a>
</div>
<br>
</div>
</div>
</div>
該url由父代模板中的代碼生成:ui-sref =「nodeList.nodeDetail({nodeId:node.id})」 添加斜槓只會改變添加到url的雙斜槓:「http:// localhost:8080 /#// v1/dnanodes/27ae134e-1067-4788-a97d-0981deca2e53」 – garyM
@garyM您誤解了我的意思,我的意思是在子狀態的配置中添加一個斜槓。 –
嗨巴巴,我確實把它放在創建雙斜槓的子狀態,並沒有解決問題。我也試圖在模板的修復中產生相同的雙斜線,並且再次沒有解決方案。我對這個原因感到困惑。 – garyM