gpt4 book ai didi

Rails 4 Assets 管道树中的 Javascript 函数

转载 作者:行者123 更新时间:2023-12-03 07:59:15 25 4
gpt4 key购买 nike

当我将 javascript 函数放入 Rails Asset Pipeline Manifest 中时,我尝试通过 Chrome 控制台使用 javascript 函数。以下是我创建和设置简单的 Rails 4.2.4 应用程序所采取的步骤

$ rails new JavascriptExample
$ cd JavascriptExample
$ rails g scaffold Bear name:string
$ rake db:migrate

然后,我编辑 app/assets/javascripts/bears.coffee 并添加控制台日志和函数。

console.log("asset pipeline sucks")
square = (x) -> x * x

然后我启动服务器

$ rails s

我访问 localhost:3000/bears 并在 Chrome 控制台中看到我的第一行代码已生效。但是,当我在控制台中尝试命令 square(5); 时,我收到错误 Uncaught ReferenceError: square is not Defined(…)

明明这个函数已经加载到application.js中了,为什么我就不能这样做呢?

最佳答案

这就是你的coffescript被编译成javascript的内容

(function() {
var square;

console.log("asset pipeline sucks");

square = function(x) {
return x * x;
};
}).call(this);

来自this : var 关键字在 CoffeeScript 中是保留的,如果使用将触发语法错误。局部变量默认是隐式创建的,因此它并不像您期望的那样在全局范围内可用

为了让它发挥作用,我们可以这样做:

console.log("asset pipeline sucks")
@square = (x) -> x * x

请注意,我们有@现在编译后的 JavaScript 将是:

(function() {
console.log("asset pipeline sucks");

this.square = function(x) {
return x * x;
};

}).call(this);

关于Rails 4 Assets 管道树中的 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34661503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com