型号.js.咖啡包括在内,但不起作用
model.js.coffee included but not working
我对Ruby on rails开发相当陌生,在将自动生成的js.coffee文件纳入我的html.erb时遇到了麻烦。
从本质上讲,我可以让我的 js 在我的 show.html.erb 文件中工作,但前提是我直接将 js 包含在 html.erb 文件中(即在脚本标签中)。我希望通过将 js 放入模型的 js.coffee 文件中来整理代码。所以我将js转换为coffee js并做到了。没有运气。
然后我想,好吧,也许我在咖啡 js 中做错了什么 - 所以我只是创建了一个模型.js文件并使用了常规 js。还是没有运气。
我不确定我做错了什么。问题是,我可以看到在这两种情况下,模型.js文件都包含在我的 html 标记中 - 它似乎没有任何效果。
任何想法都值得赞赏。
型号.js.咖啡:
$ ->
$("#star-1").raty
click: (score, evt) ->
overall_field = document.getElementById("rating_overall")
overall_field.value = score
number: 5
half: true
precision: true
cancel: true
size: 103
starHalf: "bell-half.png"
starOff: "bell-off.png"
starOn: "bell-on.png"
target: "#hint-1"
targetFormat: "Overall: {score}"
targetType: "score"
hints: ["1", "2", "3", "4", "5", null, "", `undefined`, "*_*"]
targetKeep: true
targetText: "0"
看起来你的CoffeeScript中有一个缩进问题。CoffeeScript 的块结构由您的缩进定义,因此:
$ ->
$("#star-1").raty
#...
变成这个 JavaScript:
$(function() { });
$("#star-1").raty({
#...
});
因此,您的 raty 配置不包含在文档就绪处理程序中。结果是$("#star-1").raty({ ... })
将在 DOM 中#star-1
之前运行,并且不会发生任何有用的事情。
只需将您的代码推送到一个级别:
$ ->
$("#star-1").raty
click: (score, evt) ->
overall_field = document.getElementById("rating_overall")
overall_field.value = score
number: 5
#...
事情应该开始变得更好了。顺便说一句,您不必再在 CoffeeScript 中反引undefined
,因此:
hints: ["1", "2", "3", "4", "5", null, "", `undefined`, "*_*"]
应该只是:
hints: ["1", "2", "3", "4", "5", null, "", undefined, "*_*"]
- 在视图页面(您的show.html.erb文件所在的位置)中创建一个show.js文件,并将javascript代码放在那里。
-
在控制器中不要忘记包含格式.js(默认情况下由基架创建)。
或者尝试将 代码放在应用程序.js文件或 app/assets/JavaScript 文件夹中的 show.js 文件中。
- Js.erb VS按钮标记-不'不起作用.为什么?
- 为什么indexOf在这个js代码中不起作用
- 淘汰赛.JS'启用'长度绑定条件不起作用
- JS动态添加字段-删除按钮不起作用
- Knockout.JS标签在foreach内部不起作用
- 角度 JS + 重定向不起作用
- JS中的乘法不起作用
- Angular js+ng repeat+字母数字索引不起作用
- 角度Js ng-disabled不起作用
- 路径 lo 加载本地主机子文件夹中的文件不起作用.js仅在基路径中
- Jquery Carousel 不起作用(JS 问题)
- 验证方法在主干网中不起作用.js
- 应用程序.js在骨干中不起作用.js + 要求.js
- 路由在角度下不起作用.js - 没有控制台或语法错误
- Int from for 循环在函数中不起作用 - JS
- 为什么代码不起作用JS
- 为什么这个代码在iPad Pro上不起作用?(JS)
- .将Integer推入数组不起作用JS/JQuery
- 我的下拉列表不起作用-JS有问题
- Bootstrap弹出,粘贴不起作用.JS加载问题