当bug出现时,为什么括号在coffeescript中有效
why does the bracket works in coffeescript when bugs came
如果我想得到这样一个从coffeescript:编译的js代码
var sortableTodos = new Sortables("todo-list", {
constrain: true,
clone: true,
handle: ".todo-content",
onComplete: function(ele){
sortableTodos.serialize(false, function(element, index){
todo = Todos.get(element.getProperty("id").replace("todo-", ""));
todo.save({"order": index});
});
}
});
我不能像下面这样写咖啡代码:
sortableTodos = new Sortables(
"todo-list"
(
constrain: true
handle: '.todo-content'
onComplete:(ele)->
sortableTodos.serialize false, (element,index)->
todo = Todos.get(element.getProperty("id")).replace("todo-","")
todo.save("order":index)
)
)
但以下工作(它在onComplete后加括号)
sortableTodos = new Sortables(
"todo-list"
(
constrain: true
handle: '.todo-content'
onComplete:((ele)->
sortableTodos.serialize false, (element,index)->
todo = Todos.get(element.getProperty("id")).replace("todo-","")
todo.save("order":index)
)
)
)
我不知道为什么?是虫子吗?
CoffeeScript解析器在跨多行拆分函数参数时有很多怪癖。(请参阅第1135期。)只有在省略括号时,函数的多行参数才允许用于YAML样式的对象。所以当
func
foo: bar
x: y
工作(编译以将单个对象传递给func
),其他参数通常需要与func
位于同一行。或者,您可以在行的末尾使用'
转义,就像在JS中一样,使编译器将多行视为一行:
func '
a '
b
对于您的情况,最好的解决方案是将字符串移动到与函数调用相同的行,去掉对象文字周围的括号(如果您喜欢,请使用大括号),并与缩进保持一致:
sortableTodos = new Sortables("todo-list", {
constrain: true
handle: '.todo-content'
onComplete: (ele) ->
sortableTodos.serialize false, (element,index) ->
todo = Todos.get(element.getProperty("id")).replace("todo-","")
todo.save("order":index)
})
相关文章:
- 如何有效地将游戏数据存储在URL查询字符串中
- 如何使用Node.js最有效地解析网页
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 有效形式-始终只显示1个错误[角度]
- Javascript袖珍参考,第121页:这是怎么回事;猴子补丁”;方法应该有效
- 单击仅在第二次单击后有效
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 为什么自我执行匿名有效
- D3.js生成有效的SVG,但不显示任何内容
- 如何在AngularJS中有效地检查日期是否有效
- 为什么不是'我的函数在解析云代码中工作吗?当我在Angular和Express中测试时,它是有效的
- 滚动在Chrome中有效,但在Firefox或IE中无效
- 有效地获取两个区间之间的随机整数
- Rails将JavaScript对象存储到Model的有效方式
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用条件语句,使 jquery fadeIn/fadeOut 仅在视口 >= 480px 时才有效
- 有效负载字节与实际字节不同
- 当运行for循环时,哪个在coffeescript中更好/更有效
- 当bug出现时,为什么括号在coffeescript中有效
- reduxStore没有有效的reduce-coffeescript