LoginSignup
2
1

More than 5 years have passed since last update.

[Sails.js] exposeLocalsToBrowser: 変数をクライアントサイドJavascriptに渡す

Posted at

変数をサーバーサイドからクライアントサイドに渡したい

変数をサーバーサイドのコントローラーからからクライアントサイドに渡すために、Sails.jsのV1.0はexposeLocalsToBrowserという便利な関数を用意してくれているようですが、公式ドキュメントに記述が見つからず、使い方がわからなくて苦労したのでメモしておきます。

使い方

結論だけ書きます。
まずはコントローローからビューに変数を渡す。

AppController.js
// Viewをサーブするアクション
index: fucntion (req, res) {
  res.view('index', {
    hoge: 'piyo'
  };
}

次にビューでexposeLocalsToBrtowserを使う。ejsの場合、

index.ejs
<%- exposeLocalsToBrtowser() %>

これでクライアントサイドJavascriptで、window.SAILS_LOCALSという変数にコントローラーで渡した全ての変数が入ります。

index.js
console.log(window.SAILS_LOCALS);  // => {hoge: 'piyo'}
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1