2017-10-18 8 views
0

私はexpressでswigテンプレートエンジンを使用しており、req.userをコールバック内のテンプレートに渡そうとしています。チェックした入力がラジオボタンの正しいものを表示するように、使用しているプラ​​ンを確認して確認する必要があります。swig res.locals.userを使用した文でhtml属性を挿入する

部分ルート:

(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

これを行うための正しい方法はplans[user.stripe.plan].nameを行うと、あなたプラン名を与え{{ if plans[user.stripe.plan].name|lower === 'silver'}}<strong>silver</strong>{% endif %}

ですを使用すると、silverと比較しやすくなります。 ifステートメントの中に入れて、あなたは行くのが良いです。

関連する問題