2017-11-05 13 views
0

外部のjavascriptファイルのローカルにアクセスしたいsails.jsアプリを開発しています。私は{error: "username"}という形でデータを返送しており、私の視野の中で<%= error %>と呼んで簡単にアクセスできます。しかし、私は別の外部javascriptファイルを持っており、その中にconsole.log(error)をしたいと思いますが、それは常に定義されていません。私はまた、このような外部のJavaScript内の関数を宣言することによってもう一度試してみましたfunction notifyError(error){console.log(error)}しかし、私はこの関数を私のビューから呼び出そうとすると、この関数は定義されていないと言います。外部のjavascriptのカントにアクセスする

外部のJavaScriptファイルと私のビューをどのように結びつけることができますか?私はPNotifyを使用しているので、これが欲しいです。そして、これは私がそれを取り除いたとしても、これは常に定義されていないと言います。

答えて

2

私の観点から見ると、ビュー、サーバーサイドレンダリング、EJSの仕組みは理解できません。 <%= error %>をコードするときは、 "変数を宣言していません"。あなたはこれを言っています: "<%= error %>を内容に置き換えてください"。したがって、あなたが提供しているHTMLファイルは、ここでは「私のエラー」のような静的な文字列ではなく、プログラムで変更することができます。これはどうなりますか:

Sails app/Server side: 
("view.ejs") 
<div> 
    <%= error %> 
</div> 

("anyController.js") 
res.render('view.ejs', {error : "my error string"}); 

User side: 
<div> 
    my error string 
</div> 

ドキュメントHEREをご覧ください。

EDIT:ビュー内で何かを変更したい場合は、外部のjsファイルを使用してクライアント(シンプルスクリプトタグ)に提供することもできます。 Angular、VueJSなどのライブラリで十分です。それらのライブラリは、あなたのSailsアプリケーションへのget/post要求を行うことができます。これはjsonの回答を提供するはずです。もう一度、ドキュメントをよく見てみましょう!

+0

私はちょっと掘り下げた後、私は今それをよく理解しています。私は<%= error %>を関数呼び出しの中に使用していますので、警告( "<%=error%>")のようです。それは今働いています。あなたがちょっとした編集をして、JavaScriptを使って答えを出すのであれば、私はそれを受け入れます。 – horin

+0

EJSとサーバー側のレンダリングを使ってコンテンツを動的に変更しますが、静的なHTMLファイルとして一度配信します。したがって、提供された引数を指定して別のページをレンダリングするために使用する必要があります。したがって、引数が変更されたときに内容が変化するすべてのプロファイルで使用できる「profile.ejs」ページを作成します。それで、あなたが達成しようとしていることは、私が正しく理解すれば、それはあまり良いことではありません。しかし、のように

関連する問題