ruby-on-rails – controller.js.coffee中的函数
发布时间:2020-12-17 03:45:17 所属栏目:百科 来源:网络整理
导读:我在使用CoffeeScript创建函数时遇到了一些麻烦,我想我错过了一些东西.对于我的用户控制器,我想为注册表单创建客户端验证.我想我已经错过了这一切如何运作的基本原则. %= form_for @user,:html = {:onsubmit = "return validate_signup_form();"} do |f| % C
我在使用CoffeeScript创建函数时遇到了一些麻烦,我想我错过了一些东西.对于我的用户控制器,我想为注册表单创建客户端验证.我想我已经错过了这一切如何运作的基本原则.
<%= form_for @user,:html => {:onsubmit => "return validate_signup_form();"} do |f| %> CoffeeScript(assets / users.js.coffee): validate_signup_form = () -> alert "Hi" return false 预期产量: var validate_signup_form; validate_signup_form = function() { alert("Hi"); return false; }; validate_signup_form(); 实际输出: (function() { var validate_signup_form; validate_signup_form = function() { alert("Hi"); return false; }; }).call(this); 解决方法
实际上一切都按照预期的方式工作.正如您可以阅读
here,Coffeescript将您的代码包装在一个匿名函数中,以防止污染全局命名空间.如果你只是看一下这些例子,你可能会错过这个,但文档明确指出:
为了访问在此人工范围内声明的对象,变量或方法,您需要在全局范围内明确提供它,例如:像这样: window.validate_signup_form = validate_signup_form 如果您提到我肯定会使用事件来触发该方法. 顺便说一句:您的方法声明中不需要空括号foo = – >工作得很好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |