伊可模板引擎MVC版
块指示器是指某一区块的内容需要替换
一、变量输出
语法格式:
{{= varname }}
作用是输出varname所代表的变量的值,比如:
var sex="男";
性别是{{= sex }}
计算后的结果是:
性别是男
一般情况下等号可以省略,即可以写成 {{ sex }}
二、不转义输出
语法格式:
{{== varname }}
上例中,如果 sex = ">男";
也就是变量的值含有特殊符号,则输出结果不是
性别是>男
而是
性别是>男
而将 {{= sex }} 改写成 {{== sex }},则输出结果是我们想要的:
性别是>男
{{== }}写法是表示不转义直接输出结果

三、js代码块
语法格式是:
{{! js code !}}
示例:
{{!
(function(){
     log.print("test things...");
})();
!}}

四、css代码块
语法格式是:
{{~ css codes ~}}
示例:
{{~
.bind-wrap{
    border:1px solid grey;
    padding:15px;
}
~}}
五、子块
语法格式是:
{{> blockName }}
子块的含义是将另一个模板嵌入到当前模板,当前模板通过blockName名字所代表的模板信息,解析子模板并将结果嵌入到当前位置,
下面我们通过一个例子来了解子块的用法
创建一个主模板,位于 /public/tpl/main.tpl,内容如下:
<html>
<body>
{{> child }}
</body>
</html>
再创建一个子模板,位于 /public/tpl/child.tpl,内容如下:
<div class="has-text-danger">
这里是子模板的内容
</div>
创建主模板的页面文件,位于 /modules/page/main.esi,内容如下:
public function display(){
    var data={};
    var mainView = es.view.Load ("/tpl/main");
    mainView.Block("child","/tpl/child",{});
    es.response.echo( mainView.Render(data) );
}
代码解读:
es.view.Load("/tpl/main"); 用于加载主模板
mainView.Block("child","/tpl/child",{}) 用于加载子模板。Block函数用于解析子块,需要三个参数,分别是子块名称,也就是 {{> blockName }}中blockName所代表的名称;第二个参数是子模板的位置,第三个参数是解析子模板所用的参数,本例中不需要参数,所以传入一个空对象。
注意:指示器符号(等号,大于号)与{{之间不要有空格,它们必须紧挨在一起,也即 {{= 不能写成 {{ =,同样 {{> 不能写成 {{  >,比如:{{ > blockName }} 将不能被模板引擎正确解析