2017-10-18 1 views
0

저는 express와 함께 swig 템플릿 엔진을 사용하고 있으며 req.user를 콜백 내부의 템플릿에 전달하려고합니다. 확인 된 입력에 라디오 버튼에 대한 올바른 정보가 표시되도록 사용중인 계획을 확인하고 볼 필요가 있습니다.swig res.locals.user로 if 문을 삽입하십시오.

부분 경로 :

(req, res, next) => { 
    res.locals.user = req.user; 
    console.log(res.locals.user.stripe.plan); // this shows the value I need 
    next(); 
    } 

내가 노력하고 문을 사용하는 경우 :

<input type="radio" {% if user.stripe.plan == "free" %}checked{% endif %} name="plan" value="free" data-toggle="radio"> 
+0

디버깅을 할 때 가장 먼저 할 일은 값을 HTML에 직접 출력하므로'{{user.stripe.plan}} '입니다. 그러면 실제로 어떤 값이 템플릿에 적용되는지 확인할 수 있습니다. 'res.render'에 전달한 모든 지역 주민들은'res.locals'에있는 것들을 덮어 쓸 것입니다. 그래서'res.locals.somethingCrazy'와'somethingCrazy.stripe.plan'과 같은 미친 이름으로 실험 해 볼 가치가 있습니다. 길을 따라 값을 변경하는 것이 아무것도 없는지 확인하십시오. – skirtle

답변

0

이 일을 올바른 방법은 {{ if plans[user.stripe.plan].name|lower === 'silver'}}<strong>silver</strong>{% endif %}

plans[user.stripe.plan].name 당신에게 계획의 이름을 제공하고있다있는 당신을 그런 다음 |lower을 사용하여 silver과 비교하기 쉽습니다. 그걸 if 문 안에 넣어두면 좋다.