2016-04-25 15 views
0

JavaScriptでPhoenixコントローラの変数を使用するにはどうすればよいですか?JavaScriptでPhoenixコントローラ変数を使用するにはどうすればよいですか?

私はリアクションをフロントエンドに使用しています。

JavaScriptで<%= ... %>を使用することはできません。

+0

初期ページの読み込み時に1回だけデータを読み込みますか? – Dogbert

+0

はい。私は検索バーを使っているのでそのオブジェクトが必要なので、そのオブジェクトからすべての名前が必要です – ake

答えて

0

HTML属性を作成するために値を表示してから、これをJavaScriptで取得することができます。これはむしろ一般的なprcticeです。あなたはdatahere

0についての詳細を見つけることができます

my_view.eex

<div data-name="<%= @some_name_from_controller %>" id="component"> 
</div> 

script.js

var name = $("#component").data("name"); 

:この行うことができますよう

何か

希望に役立ちます!

+0

それは私のためにはうまくいません。多分私は間違った何かをしているのか分からない。私がこの行を置くとき

私は引数エラーを受け取ります – ake

+0

@akeどのようなエラーが表示されますか?より多くの情報を提供し、より多くのコードを貼り付けることができますか? –

+0

私はこの行を書くとき:

私はこのエラーを受け取ります 割り当て@userはeexテンプレートで利用できません。 私のコントローラーには:Alias Familytree.Usersがあります。これは、私がjavascriptで使用する必要があるすべての情報を持っています。 – ake

0

あなたはそれが窓スコープにすべてのフェニックスの変数を持って、あなたはこのすべての変数を使用することができますPhoenixGonを使用することができ、それはまた、これを取得するためのJSメソッドを生成はvarsの:

def index(conn, _params) do 
    put_gon(conn, [users: Repo.all(Users), tags: Repo.all(Tags)]) 
    render(conn, "index.html", current_user: get_session(conn, :current_user)) 
end 

とブラウザのコンソールから、またはそれを使用しますjavascriptモジュール:

window.Gon.getAsset('users') 
// => [user, user1 ...] 

これはまた、js varsとhtml.eex varsを別々の部分に保ち、そのことを明確にします。

関連する問題