我使用的是ui-router 0.2.10。我的应用程序有两个不同的模板,index.html& index2.html。我创建了一个抽象的状态,并且我引用了两个索引'在他们各自的状态,问题是我可以访问第一条路线罚款,但当我尝试访问下一条路线时,它只是默认为第一条路线。抽象模板位于同一文件夹中。
我在这里缺少什么?
.config(["$stateProvider", "$urlRouterProvider", function(sp, urp) {
urp.otherwise("/index1");
sp.state("index1", {
abstract:true,
url: "/index1",
templateUrl: "index.html"
});
sp.state("index1.id", {
url: "/id",
template: "views/partials/index.partial.html",
controller: function($scope,$state){
$state.go('index1.id');
}
});
sp.state("index2", {
abstract:true,
url: "/index2",
templateUrl: "index2.html"
});
sp.state("index2.id", {
url: "/id",
template: "views/partials/index2.partial.html",
controller: function($scope,$state){
$state.go('index2.id');
}
});
}])
答案 0 :(得分:1)
我假设你试图进入一个抽象的状态并且不会起作用,因为抽象状态只会在你去找那个抽象状态的孩子时被激活,即你不能直接转到index1
或index2
,因此这不合法:
urp.otherwise("/index1");
应该是:urp.otherwise("/index1/id");
而不是。
为什么你要在他们自己的控制器内再次进入州? $state.go('index2.id');
毫无意义,因为当代码行为reached
时,您已处于状态index2.id
。我认为你的意思是将这些代码行放在抽象状态的控制器中!最后一点,不要忘记你的抽象状态必须自己拥有ui-view
,因为他们正在托管子状态。