Dojo自定义小部件样例

样例一:

<html>
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="dijit/themes/soria/soria.css">
    <script type="text/javascript" src="dojo/dojo.js" djConfig="parseOnLoad:true"></script>
    <title>Custom Widget</title>
    <script type="text/javascript">
        require([
            "dojo/_base/declare",
            "dijit/_WidgetBase",
            "dijit/_TemplatedMixin",
            "dojo/dom-construct",
            "dojo/parser",
            "dojo/domReady!"
        ], function (declare,_WidgetBase,_TemplatedMixin,domConstruct){
            //创建DOM节点小部件
            declare("Counter", [_WidgetBase], {
                // 计数器
                _i: 1,
                buildRendering: function() {
                    // 创建该小部件的DOM树
                    this.domNode = domConstruct.create("button", {
                        innerHTML: this._i
                    });
                },
                //postCreate函数依赖进行事件连接this.connect或this.disconnect
                postCreate: function() {
                    // 用户每点击一次按钮,计数器增加1
                    this.connect(this.domNode, "onclick", "increment");
                },
                increment: function() {
                    this.domNode.innerHTML = ++this._i;
                }
            });
            //模板化小部件
            declare("CounterText", [_WidgetBase, _TemplatedMixin], {
                // 计数器
                _i: 0,
                templateString: "<div>" + "<button dojoAttachEvent=‘onclick: increment‘>增加计数</button>" + "&nbsp; 当前计数: <span dojoAttachPoint=‘counter‘>0</span>" + "</div>",
                increment: function() {
                    this.counter.innerHTML = ++this._i;
                }
            });
        });
    </script>
</head>
<body class="soria">
<span dojoType="Counter"></span>
<br>
<span dojoType="CounterText"></span>
</body>
</html>

输出结果:

--采用attributeMap将小部件的属性映射为DOM节点的属性、innerHTML或类:

<html>
<head>
    <title>Business Card</title>
    <style type="text/css">
        body, html { margin: 0; height: 100%; width: 100%; }
        .businessCard { border: 3px inset gray; margin: 1em; }
        .employeeName { color: blue; }
        .specialEmployeeName { color: red; }
    </style>
    <link rel="stylesheet" href="dijit/themes/tundra/tundra.css">
    <script type="text/javascript" src="dojo/dojo.js" djConfig="parseOnLoad:true"></script>
    <script type="text/javascript">
        require([
            "dojo/_base/declare",
            "dijit/_WidgetBase",
            "dijit/_TemplatedMixin",
            "dojo/parser",
            "dojo/domReady!"
        ], function (declare,_WidgetBase,_TemplatedMixin){
            declare("BusinessCard", [_WidgetBase, _TemplatedMixin], {
                // 初始化参数,设置默认属性值
                name: "unknown",
                nameClass: "employeeName",
                phone: "unknown",
                //模板文件
                templateString: "<div class=‘businessCard‘>" + "<div>姓名: <span dojoAttachPoint=‘nameNode‘></span></div>" + "<div>电话 #: <span dojoAttachPoint=‘phoneNode‘></span></div>" + "</div>",
                //将小部件的属性映射为DOM节点的属性、innerHTML或类
                attributeMap: {
                    name: {
                        node: "nameNode",
                        type: "innerHTML"
                    },
                    nameClass: {
                        node: "nameNode",
                        type: "class"
                    },
                    phone: {
                        node: "phoneNode",
                        type: "innerHTML"
                    }
                }
            });
        });
    </script>
</head>
<body class="tundra">
<span dojoType="BusinessCard" name="陈德选" phone="(010) 63981212">
</span>
<span dojoType="BusinessCard" name="刘泊芸" nameClass="specialEmployeeName" phone="(010) 63967113">
</span>
</body>
</html>

输出:

时间: 2024-12-29 07:46:08

Dojo自定义小部件样例的相关文章

Dojo学习笔记(二十一):创建自定义Dojo小部件

在这个教程中,我们将会演示如何利用Dojo 和Dijit框架来创建自定义的小部件,主要会使用到dijit/_WidgetBase and dijit/_TemplatedMixin. Dojo的Dijit 库包含了丰富的界面小部件(Widgets),通过使用这些小部件,可以打造出强大的Web应用界面,从高级的表单元素,到复杂页面布局. 假设我们需要开发一个能展示所有Dojo教程作者的简介信息的页面,我们手头的数据源是如下的JSON数据: [     {         "name": 

Qt Widgets——动作类与小部件菜单项

本文主要涉及以下三个类: QAction ——QWidgetAction QActionGroup QAction可称为动作类,它一般可当作菜单中的项组成菜单,也可作为工具栏上的按钮,它主要由图标.文本及快捷键三部分组成.QActionGroup用于将QAction分组,设置组内各QAction的互斥性质(exclusive ),设置后,组内的动作,在外观上形成多选框(不互斥)或单选框(互斥).QWidgetAction继承自QAction,它可将自定义的小部件插入到菜单项中,用于QSystem

Android桌面小部件AppWidget开发

什么是AppWidget AppWidget 即桌面小部件,也叫桌面控件,就是能直接显示在Android系统桌面上的小程序,先看图: 图中我用×××箭头指示的即为AppWidget,一些用户使用比较频繁的程序,可以做成AppWidget,这样能方便地使用.典型的程序有时钟.天气.音乐播放器等.AppWidget 是Android 系统应用开发层面的一部分,有着特殊用途,使用得当的化,的确会为app 增色不少,它的工作原理是把一个进程的控件嵌入到别外一个进程的窗口里的一种方法.长按桌面空白处,会出

5、Cocos2dx 3.0游戏开发找小三之测试样例简介及小结

重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27186557 测试样例简介 Cocos2d-x 为我们提供了十分丰富的测试样例,这些测试样例是在引擎开发过程中为测试引擎的正确性而编写的代码,同时也是演示引擎各个部分如何使用的良好示例. 打开Cocos2d-x根目录下build文件夹下的cocos2d-win32.vc2012.sln解决方案,设置其中的 cpp-tests 项目为启动项目,成功运行后

spring+springmvc+hibernate架构、maven分模块开发样例小项目案例

maven分模块开发样例小项目案例 spring+springmvc+hibernate架构 以用户管理做測试,分dao,sevices,web层,分模块开发測试!因时间关系.仅仅測查询成功.其它的准备在ext上做个完整的案例来的,可惜近期时间非常紧. 高级部分也没做測试,比方建私服,其它经常使用插件測试之类的,等用时间了我做个完整ext前端和maven 完整的样例出来,在分享吧. 只是眼下这些撑握了.在项目中做开发是没有问题的,其它高级部分是架构师所做的. 之前我有的资源都加上了积分,有些博友

8/2 multi4 E找规律+模拟,空间开小了然后一直WA。。。J爆搜check不严谨WA。。。multi3 G凸包判共线写错数组名???样例太好过.想哭jpg。

multi4 Problem E. Matrix from Arrays 题意:构造一个数组,求子矩阵前缀和. 思路:打表找规律,"发现"L为奇数时循环节为L,为偶数时循环节为2L,求相应循环节的二维前缀和然后加加减减计算一下就好. 虚伪地证明一下循环节:L为奇数时对于第x行/列开始的位置有(x  +  x+L-1)*L/2   ->     (2x+L-1)/2(为整数)*L,因此扫过L行/列也就扫过了L整数倍"(2x+L-1)/2"倍的A[0]~A[L],

Python word_cloud 样例 标签云系列(三)

转载地址:https://zhuanlan.zhihu.com/p/20436642word_cloud/examples at master · amueller/word_cloud · GitHub 上面是官方样例.这一篇里的大部分尝试都基于这些样例进行修改.前提是你已经完成了安装,依照上一篇修改了 FONT_PATH . 还记得 http://zhuanlan.zhihu.com/666666/20432734 里提到的中文分词方法吧,这次我们就不再赘述对文本的预处理了.有所不同的是,在

『HTML5梦幻之旅』 - 仿Qt演示样例Drag and Drop Robot(换装机器人)

起源 在Qt的演示样例中看到了一个有趣的demo.截图例如以下: 这个demo的名字叫Drag and Drop Robot,简单概括而言,在这个demo中,能够把机器人四周的颜色拖动到机器人的各个部位,比方说头.臂,身躯等.然后这个部位就会变成相应的颜色.相似于换装小游戏. 上图就是经过愚下的拖动颜色使其简略换装后的样子. 当然,拖动颜色使部件变色的功能并不难实现,关键在于这个机器人是动态的,我们要研究的就恰恰是这个机器人动画是怎么做出来的. 光凭两张图片我们无法知道这个动画究竟是什么样子的,

网易2018.03.27算法岗,三道编程题100%样例AC题解

博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/8660814.html特别不喜欢那些随便转载别人的原创文章又不给出链接的所以不准偷偷复制博主的博客噢~~ 1. 自定义排序 第一题是第一行给出n(1<=n<=100),表示下面有n行,每行A(0<=A<24)和B(0<=B<60),表示定的闹钟为AhBmin. 接下来给定X,表示小明从起床到教室需要X分钟,最后一行给出A(0<=A