2016-11-15 60 views
2

我在/assets/javascripts/transactions.coffee中有一些咖啡脚本,它使用dd/mm/yy格式填充当前日期的文本字段(/views/transactions/_form.html.erb)。只想要在特定的Rails视图上执行javascript

$ -> 
    today = new Date 
    dd = today.getDate() 
    mm = today.getMonth() + 1 
    #January is 0! 
    yyyy = today.getFullYear() 
    if dd < 10 
     dd = '0' + dd 
    if mm < 10 
     mm = '0' + mm 
    today = dd + '/' + mm + '/' + yyyy 
    $('#transaction_date').val today 

$ -> 
    $('#transaction_date').datepicker({dateFormat: "dd/mm/yy"}) 

目前,这种形式在/views/transactions/new.html.erb/views/transactions/edit.html.erb引用。但是,我只希望将文本字段填充到new.html.erb而不是edit.html.erb

在Rails(4.2.5)中实现这一点的'最干净的方法是什么?

+0

的可能重复的[添加页面特定的JavaScript在Rails 3应用程序的最佳方法是什么?( http://stackoverflow.com/questions/3437585/best-way-to-add-page-specific-javascript-in-a-rails-3-app) – guiniveretoo

+0

@guiniveretoo我添加了版本号(4.2.5 )。我希望有更好的方法来实现这一点。 – Bhav

+0

这个重复问题有9个答案。你尝试了所有的?什么使新解决方案更合适?编辑你的问题,以澄清为什么这些解决方案是不可接受的或为什么你的问题不是重复的。 – guiniveretoo

回答

0

也许你可以使用内联脚本在你的视图中调用transactions.coffee来创建函数。例如,在transactions.coffee

this.App || (this.App = {}) 
this.App.Transactions = 
    runForNewView:() -> 
     today = new Date 
     dd = today.getDate() 
     mm = today.getMonth() + 1 
     #January is 0! 
     yyyy = today.getFullYear() 
     if dd < 10 
      dd = '0' + dd 
     if mm < 10 
      mm = '0' + mm 
     today = dd + '/' + mm + '/' + yyyy 
     $('#transaction_date').val today 

然后,例如,在新的视图模板,你想补充

<script text="text/javascript"> 
    $(function() { App.Transactions.runForNewView(); }); 
</script> 
相关问题