我正试图通过使用Angular
和Angular UI router
的抽象状态提供一些初始的“部分”视图,但在某处我正在做出一个错误解释,这违反了我的实现... < / p>
正如您所看到的,我尝试了一些变体,为抽象状态指定了customLayout.html
模板。这也行不通。
工作(但不是我想要的)是指定每个州的共享部分模板。
我已经实现 以及
请参阅:JSBin。 请注意: 编辑: 借助this:
//REMOVE COMMENT HERE
在“继承”或“子”状态之间切换。 $stateProvider
.state("layout", {
abstract: true,
url: "",
//templateUrl: "customLayout.html",
views: {
"header" : {
templateUrl: 'shared/header.html',
}
}
})
//REMOVE COMMENT HERE
//.state("layout.demo")
.state("demo", {
url: "/demo",
views: {
"" : {
templateUrl: 'demo.html',
},
"header" : {
templateUrl: 'shared/header.html'
}
}
});
$stateProvider
.state("layout", {
abstract: true,
url: "",
//templateUrl: "customLayout.html",
views: {
"header" : {
templateUrl: 'shared/header.html',
},
//ADDED THIS, ESSENTIALLY PROXYING THE NAMELESS TEMPLATE
'': {
template: '<ui-view />'
}
}
})
答案 0 :(得分:1)
试试这个:
app.config([
'$stateProvider',
'$urlRouterProvider',
function ($stateProvider, $urlRouterProvider) {
console.log("app: states");
$urlRouterProvider
.otherwise('/demo');
$stateProvider
.state("layout", {
abstract: true,
url: "",
//templateUrl: "customLayout.html",
views: {
"" : {
templateUrl: 'demo.html'
},
"header" : {
templateUrl: 'shared/header.html'
}
}
})
//REMOVE COMMENT HERE
//.state("layout.demo")
.state("layout.demo", {
url: "/demo",
});
}
]);