我以这种方式定义状态:
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', url: '', template: 'data.html'},
{state : 'contact.data', url: '', 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;
});
当然,这是行不通的。我有点迷路了。
有一个工作的家伙
你快到了。让我们简化一下状态定义 (因为我们不需要嵌套的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;
});
在这里检查
Python 拥有一件非常有趣的特性,那就是函数装饰器。这个特性允许您使用一些 非常简介的语法编辑 Web 应用。因为 Flask 中的每个视图都是一个函数装饰器, 这些装饰器被用来将附加的功能注入到一个或者多个函数中。 route() 装饰器您可能已经使用过了。但是在一些情况下您需要实现自己的装饰器。例如, 您有一个仅供登陆后的用户访问的视图,如果未登录的用户试图访问,则把用户 转接到登陆界面。
操作步骤: ①进入编辑地图页面点击左上方地图名称。 ②进入编辑状态。 ③编辑完成后,点击回车或是√,地图名称修改成功。 提示 ●地图名称不能少于2个字符。 操作动图: [查看原图]
我想在< code>RecycleView中仅绘制< code >标题类型的默认< code>ItemDecoration。但是每个< code >视图类型都会显示< code >分隔线。 定制装修: 设置: 对为什么会发生这种情况有什么建议吗? 更新 上面的代码是工作代码。但是有一只虫子。启动应用程序后,分隔符出现在所有元素中,然后只出现在正确的元素中。为什么会这样?
问题内容: 我希望仅当登录用户具有所需的权限级别时,其他功能才可执行。 为了使我的生活更加复杂,我想使用装饰器。下面,我尝试在“装饰”功能上设置属性-如下所示。 但是当我这样做时: 我得到一个错误 我想念什么? 问题答案: 您正在检查内部(包装)函数上的属性,但在原始(包装)函数上进行了设置。但是,您 根本 需要包装函数: 你的装饰需要返回 的东西 那将取代原有的功能。原始函数本身(添加了属性)可
问题内容: 我试图弄清楚如何获取方法上所有装饰器的名称。我已经可以获取方法名称和文档字符串,但是无法弄清楚如何获取装饰器列表。 问题答案: 如果可以更改从中调用装饰器的方式 至 那么您可以通过以下方式注册装饰器: 例如: 在这里,我们访问装饰器的元组: 在这里,我们仅打印装饰器的名称:
我如何尝试解决这个问题(我的解决截图),和错误图像(错误回复)