2016-09-12 7 views
0

私のnode.jsプロジェクトで、ejsページ(<%- include('partials/content') %>を使用)に動的に組み込むことを試みています。 インクルードするページの変数を作成し、ボタンをクリックして変更する方法はありますか?ejsがクリックに含まれています

答えて

2

のは、あなたのpartials/contentファイルのような内容を含むと仮定しましょう:

<h1>Lorem ipsum dolor sit amet</h1> 

partials/content2という名前のファイル:

<h1>consectetur adipiscing elit<h1> 

あなたの主なテンプレートファイルにid result<div>によってパーシャルの内容をラップし、含まれるであろうスクリプトファイルでは、var $result = $('#result');を使用して<div>を選択します。次に、ボタンにクリックハンドラを登録することができます。クリックすると、希望のテンプレートファイルが要求され、コンテンツが置き換えられます。

メインテンプレート:

<html> 
<head> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
</head> 
<body> 
    <div id="result"> 
     <%- include partials/content.ejs %> 
    </div> 
    <button id="change">change</button> 
<script> 
    var $result = $('#result'); 
    $('#change').click(function() { 
     $result.load('/content2'); 
    }); 
</script> 
</body> 
</html> 

次に、あなたのようなバックエンド上のコントローラが必要です。

app.get('/content2', function (req, res) { 
    res.render('partials/content2'); 
}); 
+0

OKを、それは私のためではなく、奇妙な理由のために働いていない - '.LOAD()' ISNまったく働いていない。 (jQueryのcdnを除いて)ファイル全体を消去してdivやload関数しか持っていなかったとしても。同じディレクトリから単純なhtmlファイルをロードしようとしました – user3187759

+0

もちろん、メインテンプレートの

関連する問題