我不熟悉coffee脚本,我尝试将jquery从视图移动到资产中,但无法使其工作。
以下是工作视图:
- jquery_ready do
$('label[for=voucher_name], input#voucher_name').hide();
$( "#voucher_voucher_provider_id" ).change(function() {
var exist_id = $(this).val();
var ids = $('#voucher_false_ids_')[0].value;
if(jQuery.inArray(exist_id, ids.split(" ")) !== -1){
$('label[for=voucher_name], input#voucher_name').hide();
}
else
{
$('label[for=voucher_name], input#voucher_name').show();
}
});
然后在/app/assets/javascript/mycode.js.coffee中
jQuery ->
$('label[for=voucher_name], input#voucher_name').hide();
$( "#voucher_voucher_provider_id" ).change ->
exist_id = $(this).val();
ids = $('#voucher_false_ids_')[0].value;
alert('alert');
If(jQuery.inArray(exist_id, ids.split(" ")) !== -1)
$('label[for=voucher_name], input#voucher_name').hide();
else
$('label[for=voucher_name], input#voucher_name').show();
到目前为止,我可以一直运行到.change->alert('alert');不是在我开始把所有的线放在if之后
导致错误的原因:
ExecJS::RuntimeError at /admin
SyntaxError: [stdin]:6:51: unexpected =
帮助:获取正确的语法或错误来自何处/谢谢
1条答案
按热度按时间polhcujo1#
如果您将该片段粘贴到coffeescript网站的“try coffescript”页面,它会告诉您出了什么问题。
上面说:
coffeescript没有
===
或!==
接线员。==
及!=
在为您编译时,会将其转换为严格的等效项。如果您修复了该问题,则会出现另一个错误:
这是因为前一行。你开始一个
if
声明If
,所以coffeescript不认为这是if
语句,而是作为对If()
功能。把它改成小写
if
然后它编译得很好。短版本,这里是固定的: