【问题标题】:coffeescript variable to form value用于形成值的咖啡脚本变量
【发布时间】:2012-07-29 03:28:02
【问题描述】:

好的,我把这个放在一个表格里

<INPUT type="text" name="inputbox" value="">
<INPUT TYPE="button" NAME="button2" Value="Write" onClick="writeText(this.form)">

我有以下从 coffeescript 生成的 javascript

(function() {
  var writeText;

  writeText = function(form) {
    return form.inputbox.value = "ping";
  };

}).call(this);

我需要知道如何调用 writeText?

当我点击按钮时,什么都没有发生......如果我删除 function(){}.call(this) 包装器,它就可以工作。

我无法移除包装。我需要知道如何使用 .call(this) 调用 writeText。

【问题讨论】:

    标签: javascript ruby-on-rails-3 coffeescript


    【解决方案1】:

    这是一个作用域问题,Coffeescript 将所有内容都包装在它自己的闭包中,以避免污染全局命名空间。有两种解决方案;

    1. 使用 coffeescript 的“--bare”选项进行编译(首先避免将包装器放在那里)。

    2. 将您的咖啡脚本函数绑定到浏览器在运行时看到的某个对象。像这样:

    window.writeText = (form) -> form.inputbox.value = "ping"

    在第二个选项中,您的 writeText 函数绑定到浏览器中的 window 对象,即当您的脚本在浏览器中运行时隐含的 this 对象。

    【讨论】:

    • 就是“window.writeText”谢谢一百万!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2013-01-09
    • 2017-04-05
    相关资源
    最近更新 更多