HTMLテンプレートエンジン
15650 ワード
サポート機能ページ埋め込みノードに従ってテンプレート とする.埋め込みコードファイルに従ってテンプレート とする.ファイルからテンプレート をロードする. includeラベルのサポート(ページネスト) ダウンロード
テンプレートのダウンロード先:https://github.com/vervet/dee.template
インストール
使用法1.テンプレートとしてページに埋め込まれたノードに基づいて
テンプレートコード(現在のコードページにテンプレートを配置)
使用法
使い方2.テンプレートとして埋め込みコードファイルに基づいて
ホームフェースコード:
テンプレートファイルinclude.inc.htmlコード:
使用方法:
使い方3.ファイルからテンプレートをロード(node)
(FSコンポーネント依存、nodeJs環境のみ)
ホームフェースコード:
テンプレートファイルinclude.inc.htmlコード:
メインインタフェースjsの使い方:
4.includeタグのサポート(htmlファイル参照)
本手法はHTMLのモジュール化に適しており,本機能は特に大型プロジェクトに適しており,モジュール分割include機能の深さ埋め込みを行う.
メインインタフェースコード、例1
例2
テンプレートファイルinclude.inc.htmlコード:
メインインタフェースJSコード
4.1 includeラベルのプロパティ
ツールバーの
説明
src
埋め込まれたhtmlコードが存在するファイル名
node
使用するサブテンプレートのid(テンプレートファイル内のノードid)
module
includeテンプレートのインスタンスid
data
テンプレートに入力された値
script
実行するコード(書き込みルールは別途参照)
1つのテンプレートファイルに複数のサブテンプレートノードが使用されている場合は、include機能の例2を参照して、テンプレートファイルをインスタンス化してから、各サブテンプレートをそれぞれ使用することができます.
4.2ループネストのサポート
includeはループネストをサポート
4.3 jsコードの実行をサポートする
scriptはモジュールが実行する必要がある埋め込みコードを指し、ルールの例
4.3.1共通関数の呼び出し
4.3.2カスタムイベントのバインド
4.3.3カスタムイベントのトリガー
data属性適用:
node値のないincludeタグはインスタンス化されず、ノードにnode、data、module、さらにはsrcを設定した後、activeIncludeメソッドを使用してラベルを動的にアクティブ化できます.
4.4イベント製造器Template.EventFactory
利用者"`js mainObj.myevent(function(param){//パラメータを受信
});
テンプレートのダウンロード先:https://github.com/vervet/dee.template
インストール
npm install dee-template
使用法1.テンプレートとしてページに埋め込まれたノードに基づいて
テンプレートコード(現在のコードページにテンプレートを配置)
<TEXTAREA id='tpl_1' style='display:none'>
:<span>${date}span>
:<span>${name}span>
:<img src='${body.photo}'>
:<span>${body.weight}span>
:<span>${body.length}span>
TEXTAREA>
<div id='babyInformation'>
div>
使用法
require("dee-template");
var data ={
date:'2017-06-02',
name:'Allen,Ding',
body:{
'weight':3.45,
'length':50,
}
}
var node = Template.makeNode('#tpl_1', data);
$('#babyInformation').append(node);
//
Template.makeNodeTo('#tpl_1',data,'#babyInformation');
使い方2.テンプレートとして埋め込みコードファイルに基づいて
ホームフェースコード:
<object id='obj_1' data='include.inc.html'
type='text/plain' style='disply:none'>object>
テンプレートファイルinclude.inc.htmlコード:
<TEXTAREA id='tpl_1'>
:<span>${date}span>
:<span>${name}span>
:<img src='${body.photo}'>
:<span>${body.weight}span>
:<span>${body.length}span>
for(var i =0; i < 5; i++)
{
%>
${i} is
TEXTAREA>
<TEXTAREA id='tpl_2'>
.....
TEXTAREA>
使用方法:
require("dee-template");
var data ={
date:'2017-06-02',
name:'Allen,Ding',
body:{
'weight':3.45,
'length':50,
}
}
var maker = Template.fromEmbededObject('#obj_1');
var html = maker.template('#tpl_1', data);
使い方3.ファイルからテンプレートをロード(node)
(FSコンポーネント依存、nodeJs環境のみ)
ホームフェースコード:
テンプレートファイルinclude.inc.htmlコード:
<div id='tpl_1'>
:<span>${date}span>
:<span>${name}span>
:<img src='${body.photo}'>
:<span>${body.weight}span>
:<span>${body.length}span>
for(var i =0; i < 5; i++)
{
%>
${i} is
div>
<div id='tpl_2'>
...
div>
メインインタフェースjsの使い方:
require("dee-template");
var data ={
date:'2017-06-02',
name:'Allen,Ding',
body:{
'weight':3.45,
'length':50,
}
}
var maker = Template.fromFile('include.inc.html');
var html = maker.template('#tpl_1', data);
4.includeタグのサポート(htmlファイル参照)
本手法はHTMLのモジュール化に適しており,本機能は特に大型プロジェクトに適しており,モジュール分割include機能の深さ埋め込みを行う.
メインインタフェースコード、例1
<INCLUDE node='tpl_1' src='include.inc.html' script='hello.js'>INCLUDE>
例2
<INCLUDE module='inc_1' src='include.inc.html'>INCLUDE>
<INCLUDE module='inc_1' node='tpl_1' >INCLUDE>
<INCLUDE module='inc_1' node='tpl_2' data='{a:1,b:2}'>INCLUDE>
テンプレートファイルinclude.inc.htmlコード:
<div id='tpl_1' >
:<span>${date}span>
:<span>${name}span>
:<img src='${body.photo}'>
:<span>${body.weight}span>
:<span>${body.length}span>
div>
<div id='tpl_2'>
...
div>
メインインタフェースJSコード
4.1 includeラベルのプロパティ
ツールバーの
説明
src
埋め込まれたhtmlコードが存在するファイル名
node
使用するサブテンプレートのid(テンプレートファイル内のノードid)
module
includeテンプレートのインスタンスid
data
テンプレートに入力された値
script
実行するコード(書き込みルールは別途参照)
1つのテンプレートファイルに複数のサブテンプレートノードが使用されている場合は、include機能の例2を参照して、テンプレートファイルをインスタンス化してから、各サブテンプレートをそれぞれ使用することができます.
4.2ループネストのサポート
includeはループネストをサポート
4.3 jsコードの実行をサポートする
scriptはモジュールが実行する必要がある埋め込みコードを指し、ルールの例
class MyModule {
constructor($) {
this.$=$;
// $ , HTML
var name = $('#username').html();
myOldCode($);
}
publicMethod (){
//
// ,
}
} //class
function myOldCode($){
//all my old code
}
module.exports = MyModule;
4.3.1共通関数の呼び出し
//
$('include')[0].runtime.publicMethod();
//
4.3.2カスタムイベントのバインド
//
$('include')[0].runtime.on('myevent',function(param){
//.....
})
4.3.3カスタムイベントのトリガー
//
this.trigger('myevent',123);
//
this.myevent.trigger(123);
//
$('include')[0].runtime.trigger('myevent',123);
//
$('include')[0].runtime.myevent.trigger(123)
data属性適用:
node値のないincludeタグはインスタンス化されず、ノードにnode、data、module、さらにはsrcを設定した後、activeIncludeメソッドを使用してラベルを動的にアクティブ化できます.
<include id='inc_1'> include>
$('#inc_1').attr('src','xxx.inc.html');
$('#inc_1').attr('node','tpl_10');
$('#inc_1').attr('data','{a:100,b:200}');
Template.activeInclude('#inc_1');
//
Template.activeInclude(
'#inc_1',
{node:'', src:'', data:''}
);
4.4イベント製造器Template.EventFactory
Template.EventFactory(obj, event)
//
Template.EventFactory(mainObj, 'myevent');
//
mainObj.myevent.trigger(111);
利用者"`js mainObj.myevent(function(param){//パラメータを受信
});