Step_00.AngularJS自定义HTML标签

index.html
<!document html>
<html ng-app="componets0">
<head>
    <title>Angular Components</title>
    <script type="text/javascript" src="lib/angular.js"></script>
    <script type="text/javascript" src="js/components.js"></script>
</head>
<body>
<custom-tag></custom-tag>
</body>
</html>

 

 

 

 

 

 

 

 

 

 

 

js/components.js
/*作者:江湖一键客
    QQ:82530662
 *为componets0模块创建一个HTML标签,形如:<custom-tag></custom-tag>
*/

var module=angular.module("componets0",[]);


/*注意标签名的的形式,如果标签名为customTag那么在HTML文档使用时请如下使用:
 *<custom-tag></custom-tag>
 *如果全小写形式(customtag),则请如下使用:
 <customtag><customtag>
*/
module.directive("customTag",function(){ 
    return {
        /*restrict的取值范围:
         *E - 表示创建的是一个HTML标签: <custom-tag></custom-tag>
         *A - 为HTML标签创建属性: <div my-directive="exp"> </div>
         *C - 为HTML标签创建类: <div class="my-directive: exp;"></div>
         *M - 创建HTML注释: <!-- directive: my-directive exp -->
        */
        restrict:"E",
        
        /*replace为true时模块则覆盖标签,比如模块是:<div></div>,
         *则<customTag></customTag>最终解释为<div></div>
        */
        replace:true,
        
        /*模块,即把<customTag>映射成最终什么样的HTML代码*/
        template:'<div></div>',
    }
});
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

replace为true时的效果:

replace为false时的效果:

 

 

 

 

 

 



 

 

 

 

 

 

 

 

 

源码下载:http://files.cnblogs.com/JiangHuakey/AngularJS_Dircetive_Tutorial_Step_00.rar

转载于:https://www.cnblogs.com/JiangHuakey/archive/2012/09/15/2686638.html

def create_progress_points(self): """创建进度点容器(含居中连接线)""" progress_container = QFrame() progress_layout = QHBoxLayout(progress_container) progress_layout.setContentsMargins(0, 20, 0, 20) progress_layout.setSpacing(0) # 取消元素间距 progress_layout.addStretch(1) # 左侧空白 # 进度点数据 progress_steps = [ ("第一天", False), ("第一周", True), ("第一个月", False), ("第三个月", False), ("转正期", False) ] for i, (step_name, completed) in enumerate(progress_steps): # 创建进度点容器 step_frame = QFrame() step_layout = QVBoxLayout(step_frame) step_layout.setAlignment(Qt.AlignmentFlag.AlignCenter) step_layout.setSpacing(5) # 创建圆点和标签容器(确保连接线对齐) dot_label_container = QWidget() dot_label_layout = QVBoxLayout(dot_label_container) dot_label_layout.setContentsMargins(0, 0, 0, 0) dot_label_layout.setAlignment(Qt.AlignmentFlag.AlignCenter) # 创建进度圆点 dot = QLabel() dot.setFixedSize(24, 24) dot.setAlignment(Qt.AlignmentFlag.AlignCenter) if completed: dot.setStyleSheet(f""" background-color: {self.HIGHLIGHT_COLOR}; border-radius: 12px; border: 2px solid {self.HIGHLIGHT_COLOR}; """) else: dot.setStyleSheet(f""" background-color: transparent; border-radius: 12px; border: 2px solid {self.TEXT_COLOR}; """) # 进度标签 label = QLabel(step_name) label.setStyleSheet(f"color: {self.TEXT_COLOR}; font-size: 13px;") dot_label_layout.addWidget(dot) dot_label_layout.addWidget(label) step_layout.addWidget(dot_label_container) progress_layout.addWidget(step_frame) # 在点之间添加连接线(最后一个点后不添加) if i < len(progress_steps) - 1: # 创建连接线容器(确保连接线居中) line_container = QWidget() line_layout = QVBoxLayout(line_container) line_layout.setContentsMargins(0, 0, 0, 0) line_layout.addStretch(1) # 顶部弹性空间 line = QFrame() line.setFixedHeight(2) line.setFixedWidth(30) # 根据当前点和下一个点的状态决定线型 next_completed = progress_steps[i + 1][1] if completed and next_completed: # 两端都已完成 - 实线连接 line.setStyleSheet(f"background-color: {self.HIGHLIGHT_COLOR};") else: # 任意一端未完成 - 虚线连接 line.setStyleSheet(f""" background-color: transparent; border: 1px dashed {self.TEXT_COLOR}; """) line_layout.addWidget(line) line_layout.addStretch(1) # 底部弹性空间 progress_layout.addWidget(line_container) progress_layout.addStretch(1) # 右侧空白 return progress_container 将上有一次生成的组件替换为以上函数
最新发布
08-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值