![](/img/trans.png)
[英]Rails 6 Webpacker calling javascript function from Rails view
[英]Rails Javascript - Calling a javascript function from the view
我有一個javascript文件abc.js。 我將其保存在app / assets / javascripts / abc文件夾中。
在我的application.js文件中,
//= require abc/abc
在我看來,我需要顯示由abc.js
文件中的函數返回的對象。
我正在通過以下命令調用該函數
%h4.sub-header Test Project
%textarea.form-control{rows: 10}
:javascript
abc.diff(@a, @b)
我從控制器獲取a&b值。
但是沒有調用該函數。 而是顯示句子“ abc.diff(a,b)”。
誰能告訴我如何在視圖中調用該函數?
在haml javascript塊中,您可以執行字符串插值。 縮進在haml中也很重要(很明顯)。 因此,您的視圖應如下所示:
%h4.sub-header Test Project
%textarea.form-control{rows: 10}
:javascript
abc.diff(#{@a}, #{@b});
沒有更多信息,很難說更多,但是通常這不是首選的方式:您的代碼應在javascript資產中進行預編譯,並且通常我會定義變量或將data
屬性添加到特定項目。
所以像
:javascript
var a = #{@a};
var b = #{@b};
abs.js.coffee
廣告寫
$ ->
abc.diff(a,b)
最干凈的解決方案恕我直言是這樣的:
%body{'data-a': @a, 'data-b': @b}
並在abs.js.coffee
寫入
$ ->
a = $('body').data('a')
b = $('body'_.data('b')
abs.diff(a,b)
當然,這取決於它是否適用於您的解決方案,我在此道歉:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.