Sencha Touch 2: fireEvent from view to component (custom event)

อ้างอิงตัวอย่างจาก http://miamicoder.com/2012/how-to-create-a-sencha-touch-2-app-part-4/

จาก framework ที่ Sencha Touch 2 จัดเตรียมไว้ให้แบบ MVC ทำให้ผมเลือกใช้การ pass custom event ไปยัง controller ที่จัดเตรียมเอาไว้

ส่วนสำคัญของตัวอย่างนี้คือการ initialize  view ใน method “initialize ”  เนื่องจากครั้งแรกได้ทำนอก method เป็นแบบ config object ผลคือไม่สามารถ dispatch ไปถึงตัว listener ที่ controller ได้

View

Ext.define("NotesApp.view.NotesListContainer", {
	extend: "Ext.Container",
	alias: "widget.noteslistcontainer",

	 initialize: function () {
	  this.callParent(arguments);
	  var notesList = {
	  xtype: "noteslist",
	  store: Ext.getStore("Notes"),
	  listeners: {
	    disclose: { fn: this.onNotesListDisclose, scope: this }
	  }
         };
         this.add([notesList]);
        },
	onNotesListDisclose: function (list, record, target, index, evt, options) {
	  console.log("editNoteCommand");
          this.fireEvent('editNoteCommand', this, record);
	}
});

ในส่วนของตัวรับ สามารถกำหนด event เป็น ‘editNoteCommand’ ได้เลย

Controller

Ext.define("NotesApp.controller.Notes", {

    extend: "Ext.app.Controller",
    config: {
        refs: {
         notesListContainer: "noteslistcontainer",
	},
        control: {
            notesListContainer: {
                editNoteCommand: "onEditNoteCommand"
            },
	},
	// Commands.
    onNewNoteCommand: function () {
	console.log("onNewNoteCommand");
    }
});

เวลา และ เหตุการณ์

เมื่อสิ่งที่เห็นคือปัจจุบัน แล้วความทรงจำคืออดีต

………………คิด อยู่ ตอนนี้ว่า

ถ้าผมมองหาตัวเอง ในมุมมองคนอื่น กับ

มองตัวเองในกระจก ภาพที่ได้จะต่างกัน หรือไม่

และ ถ้าเสียงที่ดังขึ้นไม่ได้เกิดจากการเพิ่มเสียงนั้น แต่เกิดจากเสียงรบกวนนั้นน้อยลง

ภาพจาก  Extremely Loud & Incredibly Close 

Sencha Touch2 – create app problem

เริ่มต้นก็จะ create app ตาม tutorial  (Window OS)
http://www.sencha.com/learn/getting-started-with-sencha-touch-2/

สุดท้ายนั่งงมอยู่นานติดตรง พอเรา “sencha app create ” มันก็เงียบไปไม่มี INFO การสร้างออกมาปรากฏว่ามีปัญหาเรื่องการอ้าง ตัว sencha ที่ใช้ในการ run

เพราะว่าขั้นตอนบอกให้ลง Tool Kit และ SDK แต่สุดท้าย sencha ที่จะใช้สร้างจริงๆ ต้องตัวที่อยู่ SDK แต่พอเราติดตั้ง Toolkit มันจะสร้าง Path Environment ให้เรียกที่ Toolkit

Solution  ให้เรียก Sencha ด้วย Full Path

Example.   D:\web\medico-mobile\lib\sencha-touch-2-sdk\command\sencha app create  [App Name]  [Destination APP]