整理Node.js Express框架中爆炸速度的ECT模板语法

的一个选择是:目标

由于Express框架以其最快的速度而闻名,但是由于它的语法没有整理,所以我决定自己整理一下。

请参考

在这里的网站上(http://ectjs.com/),有关于ECT的说明,有一些详细内容。它与CoffeeScript相似,但并不完全相同。


语法

无需转义即可输出

<h1><%- @title %></h1>

逃逸并输出

<code><%= @source %></code>

如果条件成立

<% if @value1? : %>
    <label>?で存在確認。false,"",0でも存在すればここです</label>
<% else if !@value2 : %>
    <label>[false,0,""+存在しない] を判断したければ!</label> <!-- ?と同じ役割も兼ねます -->
<% else if @value3 == "2" : %>
    <label>式で比較。=== は無くて、==で型の一致も見られます。</label>
<% else : %>
    <label>該当無し</label>
<% end %>

・新增变量

<!-- 変数宣言。後続の処理でこの変数を使えます。 -->
<% @start_num = 0 %>

・三个操作

<!-- 三項演算で値を@strに入れます。 -->
<!-- @valueがあれば"a"。無ければ"b"が出力される -->
<% @str = if @value then "a" else "b" %>
<label><%- @str %></label> 

<!-- こちらは変数に代入せず直接画面出力する場合 -->
<label><%= if @value then "a" else "b" %></label>

虽然文

<!-- 括弧内がtrueの間繰り返します -->
<% while (@start_num++ < @max_num) : %>
  <li><%- @start_num %></li>
<% end %>

使用for循环对数组进行迭代。

<!-- 繰り返しは配列のみです。オブジェクト(map)はダメです -->
<% @value = [1,2,3] %>
<% for val in @value : %>
    <li><%- val %></li>
<% end %>

· 转换语句

<% @oauthProvider='facebook' %>
<% switch @oauthProvider : %>
    <% when 'facebook' : %>
        <label>facebook</label>
    <% end %>
    <% when 'twitter' : %>
        <label>twitter</label>
    <% end %>
    <% else : %>
        <label>else</label>
    <% end %>
<% end %>

使用函数

// JavaScriptでテンプレートに関数を渡した場合
data.calc = function(a,b){return a+b;};
res.render('test', data);
<!-- test.ect -->
<!-- 画面側で利用可能 -->
<%= @calc(1,2) %>

使用布局

<!-- page.ectファイル -->
<% extend 'layout.ect' %>
<!-- layout.ectの中の"content"の場所に読み込まれます -->
<div>Hello, World!</div>
<% block 'footer' : %>
    <!-- layout.ectの中の"content 'footer'"の場所に読み込まれます -->
    <span>Custom footer content</span>
<% end %>

+

请将以下内容用中文进行同义转述,只需要一种表达方式:

<!-- layout.ectファイル -->
<html>
    <body>
        <% content %>
        <footer>
            <% content 'footer' %>
        </footer>
    </body>
</html>

请用中文写下以下原文的同义表达:

<!-- page.ectを表示した結果になります -->
<!-- layout.ectの中に、page.ectの内容と部品(blockの部分)が読み込まれます -->
<html>
    <body>
      <div>Hello, World!</div>
        <footer>
            <span>Custom footer content</span>
        </footer>
    </body>
</html>

他正在加载ECT文件。

<!-- 他ファイルをパラメータを含めて表示 -->
<!-- item.ectを読み込みますが、拡張子付きで指定すると
動きがおかしくなったので付けない方がいいです。 -->
<% include 'item', { item : 'book', price: '10$' } %>

被加载到 ↑ 中。

<!-- item.ect -->
<div><%= @item %></div>
<div><%= @price %></div>

我觉得除了以上所提到的,可能还有其他的,不过只要有这些就差不多可以写了。

做不到的事 (zuò bù de shì)

以下是我曾经尝试过但未能成功的事情。
如果有人知道如何做,请告诉我(>人<)

在ECT文件中定义函数

<!-- こういう風に、ECT内で変数作るように関数は作れなかったです -->
<% @calc=function(a,b){return a+b;} %>

为变量增加的类型的for循环。

<!-- 実行できませんでした -->
<% for (@i = 0;@i < 5; @i++) : %>
   <li><%= @i %></li>
<% end %>
广告
将在 10 秒后关闭
bannerAds