簡體   English   中英

Rails Javascript-從視圖中調用JavaScript函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM