0

route/index.js に次の構成を含めることはできますか?

exports.PageA = function(req, res) {
...
...
    if(req.method == 'GET') {
        if (condition1) {
            //PageA has 2 .js files
            res.render('PageA', { title: 'A', layout: false});
        }
        else {
            //PageB has 2 + 2 .js files
            res.render('PageB', { title: 'B', layout: false});
        }
    }
    else {
        res.render('PageC', { title: 'B', layout:'some_other_layout' });
    }
};

ケース: mywebsite.com/PageA は、条件 1 に合格すると正しくレンダリングされます (すべてのスクリプトが正しく読み込まれ、実行されます)。

問題 : しかし、条件 1 が失敗すると、PageB がレンダリングされ、PageB.ejs の JavaScript はレンダリングされますが、$document.Ready() では実行されません。奇妙なことに、ブラウザーで既にレンダリングされた PageB を「更新」すると、javascript が正しく実行されます。

情報として:私はすべての "< script >..." で defer="defer" タグを使用します。

ここで何が欠けていますか?

4

1 に答える 1

0

あなたの問題は完全にクライアント側にあります。現時点では、属性「defer」は Internet Explorer と Firefox でのみサポートされています。あなたの問題は、スクリプトが間違った順序でロードされていることだと思います。ブラウザのコンソールにエラーがないか確認してください。ページを再読み込みすると、スクリプトがブラウザのキャッシュから読み込まれます。それはより速いです。したがって、この状況ではエラーが表示されない場合があります。

于 2012-06-20T08:56:40.930 に答える