ps:新版已經發布,請看 新版文檔
==========================
由於jCT3完全融合了javascript和html的原生語法,且jCT3的擴展方法使得模板代碼生成的對象能與外部javascript文件中的對象合併,所以在實際的使用過程中,似乎沒有必要在模板裏面寫函數語法啦,當然可以寫內部函數,這兩者是不同的,這個先不談。重點是,這樣模板的寫法可以更獨立,有點UI庫的味道。問題是jCT一開始設計的時候並沒有考慮要向這個方向發展,現在看起來要經過一些實踐纔會有所實施。這裏篇文章記錄下思路過程
1.首先GetView方法要支持參數的傳入,實現起來容易,定義一個語法就行了
<!---/*++a,b,c*/-->
當然對於子模板的定義來說這樣寫有些不方便,因此擴展字模板的定義爲
<!---/*+@subname a,b,c*/-->
對應GetView(a,b,c)這樣的定義,寫兩個+號的原因是輸入方便。
2.既然GetView要參數傳遞那麼ExecChilds和BuildChilds也應該可以傳遞參數過去
同理,模板中定義的成員函數也可以用同樣的方法定義參數
3.對於符號的選擇是否要改變一下,目的很簡單就是輸入的方便,比如儘量不用使用shift鍵的字符:@$+,採用-=/'.
爲了書寫的方便,初步決定這樣改造符號,注意空格的重要性,先內測一下,如果沒有問題就更新
子模板定義 <!---///subname a,b,c--> <!---///subname-->
GetView參數 <!---// a,b,c-->
屬性/函數定義<!---//.attrname javascriptcode[//]--> [<!---}//-->]
例如屬性定義:
<!---//.name 'sdfdsf'-->
<!---//.dat
{
name:'youname',
age:36
}-->
例如函數定義:
單個註釋塊表示
<!---//.fun
function(a,b,c){return a;}
//-->
分離的註釋塊表示,注意這種寫目前還沒有實現方案
<!---//.fun
function(a,b,c){-->
<b>+-a-+<b>
<!---return b;}//-->
4.發現RunNow在兩個不同的時期都會觸發,很容易造成理解和使用上的迷惑和不便,因此把Build和Extend兩個不同時期的自動運行分開來定義BRun和ERun
我也迷茫,如果充分利用jCT擴展的方法,那以前的一些成員定義基本都可以拋棄了,如果加上這個GetView參數定義的話
jCT還要做些什麼才能符合UI庫的設計呢?
輔助方法肯定是要的,這一點早就確定,其它呢?
關於前臺文檔組織的方法:先筆記一下
首先前臺文檔有以下幾部分組成
1.css樣式文件,這個其實是獨立的一個控制,應該是獨立調入的
2.html模板,模板有可能不知道自己要如何組織到DOMtree裏,要靠下面的
3.用於控制html裝配位置的js文件,裏面定義的就是html模板對應的jCT實例對象
4.與後臺服務器通訊的action javascript接口,負責獲取和提交數據
問題,如何書寫模板,如何寫配套的工具來對這幾部分進行整合?
對於具體的寫法是要追求“標準些”,還是簡潔至上?
如果要基於UI的設計來傳遞這些對象的話,貌似只要設置一個動態的id,並且通過action by class的方法傳遞DOMtree中生成的對象就好了。