2012-02-17 9 views
1

javascriptテンプレートの中にロジックを追加/追加するのはいいですか?JSテンプレート内にロジックを追加していますか?良いアイデアかノーですか?

<time style="display: <%= time ? 'block' : 'none' %>"><%= time %></time> 

レンダリング時間はどのように影響を受けますか?それは大きな違いですか?

+1

あなたはどの言語を使用していますか? jsp? – alfasin

+0

これはunderscore.jsテンプレート構造を使用しています。 –

答えて

3

一般的には、テンプレートのロジックを避けるのが賢明です。ただし、値の初期化が行われた場合にブロックを条件付きで出力することはOKです。

以下、私がに問題がないでしょう。あなたの状況について

<% if(time) { %><time><%= time %></time><% } %> 

を、私はこれを行うだろう。あなたの<head>(またはCSS)では:あなたのテンプレートで

<style> 
    time:empty { display: none; } 
</style> 

<time><%= time %></time> 

私は `のためのブラウザのサポートについてのかどうか分からない:empty'疑似セレクタが、ちょうどあなたの安全のためにまた、次のようにすることもできます。

$("time:empty").hide(); 
+0

はい、私はCSSのアプローチについてあなたに同意しますが、テンプレート内でロジックを使用するかどうかという疑問の概念を維持しながら、アンダースコアで単純な例を与えていました。 –

+0

その場合、それは非常に広い質問であり、答えることは難しいです。異なる人々のために異なるストローク。 –

+0

よろしくお願いします。 –

1

一般に、ロジックはテンプレートに含まれていてはなりません。ロジックはモデルとコントローラになければなりません。モデルではロジックが多く、コントローラではロジックが少ないほど良いでしょう。

しかし、あなたが提示した特定の例では、条件は実際には論理ではありません。テンプレートが壊れないようにするのがより似ています。概念上、そのような種類の「論理」がビューに存在する必要があります。

私は彼らのテンプレートのDjangoのドキュメントはテンプレートと実際にテンプレートでは実行されないロジックを分離する(そして説明する)良い仕事をすると思います。 https://docs.djangoproject.com/en/dev/ref/templates/builtins/

+0

入力いただきありがとうございます。 –

関連する問題