มีความเป็น object อยู่สูง
แถมยังมีลักษณะเป็น MVC ด้วย
ทำให้เราสามารถ customize ส่วน Presentation ได้โดยไม่ต้องยุ่งกับ Model
ในการทำ ThaiDateWidget
เราสนใจแค่การ override
function ที่ทำหน้าที่แสดงผล เดือน กับ ปี
dojo.provide("dojo.widget.html.ThaiDatePicker");
dojo.require("dojo.widget.html.DatePicker");
dojo.widget.defineWidget(
"dojo.widget.html.ThaiDatePicker",
dojo.widget.html.DatePicker,
{
thaimonths : ['มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน',
'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม',
'กันยายน', 'ตุลาคม', 'พฤษจิกายน', 'ธันวาคม'],
setYearLabels: function(year) {
this.previousYearLabelNode.innerHTML = year - 1+543;
this.currentYearLabelNode.innerHTML = year+543;
this.nextYearLabelNode.innerHTML = year + 1+543;
},
setMonthLabel: function(monthIndex) {
this.monthLabelNode.innerHTML = this.thaimonths[monthIndex];
}
}
);
เวลาใช้งาน
<html>
<head>
<script type="text/javascript" src="./js/dojo.js"></script>
<script type="text/javascript">
dojo.require("dojo.widget.html.DatePicker");
dojo.require("dojo.widget.html.ThaiDatePicker");
</script>
</head>
<body>
<span dojoType="DatePicker" widgetId='test'></span>
<br/>
<span dojoType="ThaiDatePicker" widgetId='test2'</span>
</body>
</html>
ผลลัพท์ออกมาหน้าตาดังนี้
3 comments:
ถ้าจะ integrate เข้ากับ rails พอมีทางเปล่า
เห็นเขาว่ามันเข้ากันไม่ได้
ยุทธ
มันมีปัญหาในเรื่องการ load sub module
ซึ่งน่าจะแก้ได้โดยใช้วิธีนี้
http://blog.innerewut.de/articles/2006/05/22/dojo-and-rails-or-better-dojo-and-the-base-relative-path
แต่ใช้ dojo กับ rails แล้ว
มันจะไม่ได้ใช้ feature พวก rjs
หรือ helper ต่างๆที่ rails เตรียมไว้นะสิ
ตอนนี้ที่ผมใช้อยู่ ผมใช้ dojo กับ java project
ชอบที่มีคนพูดถึง dojo กับ rails
(from Gavin Doughtie)
> > I think a drop-in replacement is not a good idea, because with dojo
> > you have to think a little bit different, the app get's much more
> > javascript centric (at least in my case). With dojo you probably end
> > up having an Ajax app with a rails backend and not a rails app with a
> > bit of Ajax sweetness.
ทำไม่ได้ครับ ต้องสร้างไฟล์.js ใหม่หรือป่าวคัฟ
Post a Comment