81,092
社区成员
发帖
与我相关
我的任务
分享
preamble(/*Object*/ params, /*DOMNode*/node)
//这是一个通常不会用到的方法,这个方法的返回值,作为constructor的输入参数param
constructor(/*Object*/ params, /*DOMNode*/node)
// 这个方法相当于java类的构造函数
// 在这个类中执行初始化动作
postscript(/*Object*/ params, /*DOMNode*/node)
//实际的控件创建过程,依次调用如下方法(都可以被重写)
_Widget.create(/*Object*/params, /*DOMNode*/node)
_Widget.postMixInProperties( )
_Widget.buildRendering( )
_Widget.postCreate( )
//我用得最多的是postCreate方法,这个方法中,控件已经初始化完毕,界面上也已经显示出来了,
//通常在这个方法中启动业务相关的处理
//声明自己输出的类名
dojo.provide("hello.world");
//声明自己依赖的类名
dojo.require("dijit._Widget");
dojo.require("dijit._Templated");
//dojo.declare定义控件类,第一个参数:类名,第二个参数:父类数组,第三个参数:类的prototype
dojo.declare("hello.world",[dijit._Widget,dijit._Templated],
{
postCreate:function(){
this.domNode.innerHTML="hellow world";
}
}
);
<html>
<head>
<title>Hello World</title>
<!-- 首先引入dojo.js,modulePaths用来定义包含控件的js目录,类似于jsp的自定义tag引入的机制-->
<script type="text/javascript" src="./dojo/dojo.js" djConfig="parseOnLoad:true,modulePaths:{hello:'../hello'}">
</script>
<script type="text/javascript">
dojo.require("dojo.parser");
dojo.require("hello.world"); //引入自定义控件
</script>
</head>
<body>
<div dojoType="hello.world"></div>
</body>
</html>
<html>
<head>
<title>Hello World</title>
<!-- 首先引入dojo.js,modulePaths用来定义包含控件的js目录,类似于jsp的自定义tag引入的机制-->
<script type="text/javascript" src="./dojo/dojo.js" djConfig="parseOnLoad:true,modulePaths:{hello:'../hello'}">
</script>
<script type="text/javascript">
dojo.require("dojo.parser");
dojo.require("hello.world");
</script>
</head>
<body>
<div dojoType="hello.world" yourName="jinxfei"></div>
</body>
</html>
dojo.provide("hello.world");
dojo.require("dijit._Widget");
dojo.require("dijit._Templated");
dojo.declare("hello.world",[dijit._Widget,dijit._Templated],
{
yourName:'world',
constructor:function(params,node){
this.yourName=params.yourName;
},
postCreate:function(){
this.domNode.innerHTML="hellow "+this.yourName;
}
}
);
dojo.provide("hello.world");
dojo.require("dijit._Widget");
dojo.require("dijit._Templated");
dojo.declare("hello.world",[dijit._Widget,dijit._Templated],
{
yourName:'world',
typeIn:null,
echoDiv:null,
constructor:function(params,node){
this.yourName=params.yourName;
},
postCreate:function(){
this.typeIn=document.createElement("input");
this.typeIn.type="text";
this.domNode.appendChild(this.typeIn);
this.echoDiv=document.createElement("div");
this.domNode.appendChild(this.echoDiv);
dojo.connect(this.typeIn,"onkeyup",this,"updateHello");//动态绑定事件
this.updateHello();//调用方法初始化一下,先显示一个空的hello
} ,
updateHello:function(){
this.echoDiv.innerHTML="hello "+this.typeIn.value;
}
}
);