
230
|
第十三章
Model("Person",{
speak : function(){
return " 我的名字是 "+this.name+".";
}
});
Person.findOne(5, function(person){
alert( person.speak() );
});
Model("Task");
Task.findOne(7,function(task){
alert(task.name);
});
JavaScriptMVC 函式庫所提供的模型層程式介面,其實大致就是採用這樣的做法。
模型(Model)
JavaScriptMVC 的模型和相關外掛模組,都提供了許多用來管理模型資料的工具,像是
驗證資料、建立資料關聯、建立資料項目清單…等等。但當中最核心的功能,還是在於
封裝服務、型別轉換,以及事件機制。
存取模型屬性和監聽模型變化
模型層程式的重點,就在於讀取 / 設定模型屬性值,以及監聽模型物件實體變化的能
力。這就是所謂的監聽者模式(Observer Pattern),也是 MVC 架構的精髓所在—讓檢
視器能夠監聽模型的一舉一動。
只要透過 JavaScriptMVC 本身的設計,就能輕易的察覺所有資料的變動。有個例子很適
合用來解釋監聽模型變動的機制:「換頁功能列」。我們經常可以看到很多處理換頁功能
的控制項同時存在於同一張網頁的狀況。像是「上一頁」鈕、「下一頁」鈕、顯示資料
筆數的控制項(例如:「目前正在瀏覽第 1 到 20 筆資料」)。不過基本上,所有的換頁功
能列控制項,需要用到的資料應該不外乎這幾項: ...