大佬教程收集整理的这篇文章主要介绍了从装饰器设置视图名称-Angular Ui Router,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有一个工作的家伙
你快到了。让我们简化一下状态定义 (因为我们不需要嵌套的vIEw对象,我们将在以后创建它) :
parentStates.forEach(function(value) {
$stateProvIDer
.state("main." + value.state, {
url: value.url,
templateUrl: value.template,
})
});
这将是装饰器:
$stateProvIDer.decorator('vIEws', function(state, parent) {
var result = {},
vIEws = parent(statE);
// some example when to not inject resolve
if (state.name === "main") {
return vIEws;
}
angular.forEach(vIEws, function(config, Name) {
// the super child template
if(config.templateUrl === 'data.HTML'){
result['vIEwC@main'] = config;
}
else{
result['vIEwB@main'] = config;
}
});
return result;
});
在这里检查
我以这种方式定义状态:
var parentStates = [
{state : 'home',url: '/home',template: 'home.html'},{state : 'about',url: '/about',template: 'about.html'},{state : 'contact',url: '/contact',template: 'contact.html'},{state : 'home.data',url: '',template: 'data.html'},{state : 'about.data',{state : 'contact.data',template: 'data.html'}
];
$urlRouterProvider.otherwise("/main/home");
$stateProvider
.state("main",{ abtract: true,url:"/main",views: {
"viewA": {
templateUrl:"main.html"
}
}
});
parentStates.forEach(function(value){
$stateProvider
.state("main." + value.state,{
url: value.url,views: {
"": {
templateUrl: value.template
}
},})
});
我想写一个'decorator'
用于设置视图名称的基础'templateUrl'
(如您在上面看到的,该视图的名称为空) 。
这是装饰器的代码:
$stateProvider.decorator('views',function (state,parent) {
var result = {},views = parent(statE);
// Don't touch the 'main state'
if (state.name === "main") {
return views;
}
angular.forEach(views,function (config,Name) {
if(config.templateUrl=='data.html'){
result[name] = 'viewC@main';
}
else{
result[name] = 'viewB@main';
}
});
return result;
});
当然,这是行不通的。我有点迷路了。
以上是大佬教程为你收集整理的从装饰器设置视图名称-Angular Ui Router全部内容,希望文章能够帮你解决从装饰器设置视图名称-Angular Ui Router所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。