0

Java/coffescript 関数typehandler(表示されていません) を、わずかに異なるパラメーターで繰り返し呼び出しています。これは、アプリケーションのすべてのページ読み込みで発生しています。実際には、スクリプトが適用される 3 ページまたは 4 ページでのみ発生する必要があります。そして、これらのページ内では、適切なパラメーターを指定して 2 回だけ呼び出す必要があります。

#app/assets/javascripts/disk_items.js.coffee
jQuery(document).ready ->
  typehandler = (selector, url, hidden_id, entry_id) ->
  ...    
## if page is DiskItem#edit
typehandler '.projects_tt', '/projects.json', '#disk_file_project_code', '#project_code'
typehandler '.products_tt', '/products.json', '#disk_file_product_id', '#product_title'
## if page is InventoryItem#edit_multiple
typehandler '.projects_tt', '/projects.json', '#inventory_item_project_code', '#project_code'
typehandler '.products_tt', '/products.json', '#inventory_item_product_id', '#product_title'
...

方法:

  1. 特定のページでのみスクリプトを実行する
  2. #disk_file_project_codeページから何かを指定して、3 番目のパラメータ を設定しますか? 多分 HTML5要素か、それともフォーム内からdataそれを拾うことができるでしょうか?id

洞察をお寄せいただきありがとうございます…</p>

4

1 に答える 1

0

関数呼び出しを実際の html ページ内のスクリプト タグに埋め込むことは望ましくありませんか? それがおそらく最も簡単な方法だからです。

それが悪い形式と見なされる場合、および/または何らかの理由で関数呼び出しが js.coffee ファイル自体内にある必要がある場合は、次のような方法で場所を確認できます

if window.location.href.indexOf("DiskItem/edit") > -1

あなたが提案したように、データ属性またはフォーム値を介してhtmlから3番目のパラメーターを引き出します。

于 2013-08-29T00:09:42.090 に答える