2012-03-16 4 views
4

좋아, 그래서 나는 콧수염 템플릿 로직이없는 것을 알고 있지만, 어떻게이 구현합니까 :또는 운영자 동등한 사용 mustache.js

<?php 
    if ($a || $b) { 
    echo $c, $d, $e; 
    } 
?> 

이 ... 콧수염 템플릿 구문을 사용하여? 내가 가지고 올 수있는 최선은 이것이다 : 분명히 끔찍한이며, '경우'내부에 아무것도 복제 나를 필요로

{{#a}} 
    {{c}}{{d}}{{e}} 
{{/a}} 
{{^#a}} 
    {{#b}} 
    {{c}}{{d}}{{e}} 
    {{/b}} 
{{/a}} 

....

아이디어가 있으십니까?

+2

논리가있는 템플릿 엔진을 사용합니까?. 진지하게 당신은 로직을 이식하고 함수를 템플릿 데이터 객체에 넣는 함수를 사용해 보았습니다. – tkone

답변

5

콧수염은 이와 같은 것을 명시 적으로 금지합니다. 즉 논리, 그리고 당신은 당신의 템플릿 :)에 넣어 위해 노력하고

적절한 방법은 뷰 모델 또는 View 객체에 논리를 이동하는 것입니다 :

<?php 
class MyView { 
    public $a; 
    public $b; 
    public function aOrB() { 
     return $this->a || $this->b; 
    } 
} 

그러나 만약 그랬다면, 난 그 함수의 이름은 hasFoo이나 showBar과 같으므로 의미가 약간 있습니다.

"이 블록을 표시해야합니까?" 당신의보기 또는 뷰 모델의 논리, 당신은 당신의 템플릿에서 일반 섹션으로 돌아온다 : 공식적으로

{{#aOrB}} 
    {{c}}{{d}}{{e}} 
{{/aOrB}} 
0

, 즉 수염 함께 할 수있는 유일한 방법입니다. 현재 (콧수염 5, 나는 믿는다) 더 나은 해결책은 없다.