2017-04-19 20 views
1

からデータをレンダリング読みますそのテストページが何をしようとしています何を、何の問題もなく表示されます簡単なデータ= XはJQuery&ヒスイは私がデータを持つビューをレンダリングしていたときに私はjQueryのに</p> <p>を使用して、これらのデータにアクセスすることはできませんバックエンド</p> <p>ためNodejs &特急でフロントエンドとしてジェイドフレームワークを使用していますNodejs

router.get('/test',function (req,res,next) { 


    res.render('test',{data : 'x'}); 

}); 

とビューをレンダリングNodejsからの私のサービスの下のjQueryメソッド

を使用してレンダリングされたデータを読み取ることがあります
   footer 
       .pull-right 
        | Gentelella - Bootstrap Admin Template by 
        a(href='https://colorlib.com') Colorlib 
       .clearfix 
      // /footer content 




    // jQuery 
    script(src='/vendors/jquery/dist/jquery.min.js') 
     alert(data) // no alert or action happen 

が、エラーが(データの未知の変数)と

また、私はヒスイ自体

から任意の提案をそれを読むことができますか?

答えて

1

は、このクライアント側のJavaScriptがロードされているので、あなたがあなたのヒスイの枠組みの内側に書いているJavaScriptは、サーバー側Node.jsの変数を参照することができません、次の

|<script> 
!='alert("'+data+'")' 
|</script> 

を使用してみてくださいありがとうブラウザ内で実行されるため、サーバー側からクライアント側に変数を渡す必要があります。クライアントサイドJavaScriptを使用してこれらの変数を取得します。

一部の文字列を渡す場合は、以前の方法を使用する方が簡単です。

|<script> - > JavaScriptタグを開きます。

!='alert("'+data+'")'通常のジェイド文字列はGoogleのJavaScriptタグ内にあるので、最終的なテキストalert("x")にデータが置き換えられるため、jadeによって処理された後にJavaScriptコードを与える必要があります。

|</script> - > JavaScriptタグに

を閉じていますが、オブジェクトを渡したい場合は、そうする方法があります:

  • AJAX要求を使用するには。
  • 残念ながらデータを読み取り、エラー プロファイルの下になかったvar data = JSON.parse(jQuery('div').text())
+0

を使用して、サーバー側で使用JSON.stringify(data)隠しdivにあなたのオブジェクトを作成し、クライアント側のために:2キャッチされないにReferenceError:データが定義されていません プロフィール:2 – Faisal

+0

私の答えを変更しました、今すぐお試しください – Ezzat

+0

ああ、うーん、今働いている!しかし、問題は私自身のコードを追加しようとしたが、できなかった!私もあなたのコードを複製しようとしました | != 'アラート( "+サービス+'") ' !='アラート( "+サービス+ '")' | ここに秘密は何ですか? – Faisal

関連する問題

 関連する問題