簡體   English   中英

如何在沒有gem文件的ruby-on-rails中使用javascript libary?

[英]How to use javascript libary in ruby-on-rails with no gem file?

如果是gem文件,我可以在安裝gem文件后使用javascript庫,但是我不知道如何使用我發現的這個庫!

(這是github中庫的鏈接) https://github.com/teampopong/hangul-jamo-js

這一篇介紹了如何使用代碼。 我使用“ casperjs”庫進行了徹底的安裝。 但這對我來說是新的...沒有gem文件。

我想使用此庫在我的JavaScript文件中拆分韓文字符串對象!

===================== 編輯 ============================ ================

我想在我的javascript文件中使用hangul-jamo-js的方法,例如

這是我的包括casperjs代碼的javascirpt文件之一

//= require hangul-jamo.js

var a = HANGUL.toChosungs('강철');
***there is underline on HANGUL when I put this code***
var words = [];
var casper = require('casper').create();

這是我的application.html.erb頭部分

<title>Workspace</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <script src="https://raw.githubusercontent.com/teampopong/hangul-jamo-js/master/hangul-jamo.js"></script>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>

我寫的所有代碼都參考下面的答案, 但是在我的JavaScript文件中,它說“ HANGUL未定義” ...

但是當我將所有hangul-jamo-js代碼放入我的javascript文件時,它已定義...

如何在我的JavaScript中使用hangul-jamo-js代碼? 我必須通過此命令運行我的代碼

parkhk1757@wow:~/workspace/app/assets/javascripts $ casperjs myjavascript.js

在網頁標題中

 <%= javascript_include_tag "route_to_your_js" %>

http://apidock.com/rails/ActionView/Helpers/AssetTagHelper/javascript_include_tag

但是,如果您希望特定頁面為其布局頁面標題提供幫助,請查看content_for

您可能想要嘗試將js文件的本地設置放在您的app/assets/javascript文件中,並將其作為必需資產包含在application.js文件中

即: //= require hangul-jamo.js

將hangul-jamo.js文件包含到..app / assets / javascripts文件夾中,並在application.js中添加引用,例如

將文件包含在application.js文件中。

//= require yourjsfile.js

默認情況下,您將擁有

//= require_tree .

這需要資產/ javascript路徑中的所有js文件,因此您不必自己輸入,而是應將文件放在資產/ javascript路徑中。

原始答案

最簡單的解決方案是:

<script src="https://raw.githubusercontent.com/teampopong/hangul-jamo-js/master/hangul-jamo.js"></script>

app/views/layouts/application.html.erb文件的<head>部分中。 然后,您可以將代碼與Hangul.startsWith...等一起使用。

更新的答案

好吧,看來您正在混淆Web應用程序的兩個不同部分。

application.html.erb

您的application.html.erb是通過網絡請求命中的。 您將需要啟動Rails服務器(例如bin/rails s ),並從瀏覽器轉到localhost:3000來加載hangul-jamo.js,並且該文件僅適用於該頁面之后加載的javascript。 這聽起來不像您想要的。

casperjs

據我了解(我自己還沒有使用過),casperjs是一個命令行程序,可用於運行以Javascript編寫的腳本文件(在您的情況下為myjavascripts.js)。 該腳本文件用於通過使用PhantomJS加載頁面,就像在瀏覽器中加載頁面一樣,對您的Web應用程序運行測試。 Webapp中加載的Javascript文件(例如hangul-jamo.js)在myjavascripts.js文件中不可用。

為了能夠使用hangul-demo.js,首先請注意capserjs使用PhantomJS require ,這意味着它使用CommonJS樣式模塊。 這是CommonJS模塊的介紹。 我已經把它變成一個CommonJS的風格模塊這里 放入文件夾node_modules/並從myjavascripts.js進行如下使用:

var hangul = require('./hangul');
console.log(hangul.toJamos('hello'));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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