我正在调用此函数并在此处出错:data: { key: node.parent.data.key }
saing“Unexpected {”。有什么不对。因为我找不到错误。
$("#discipline-list", @el).dynatree({
fx: { height: "toggle",
duration: 100 },
initAjax: {
url: "/disciplines",
data: { mode: "funnyMode" }
},
onLazyRead: (node) ->
console.log(node);
node.appendAjax({url: "/disciplines_details",
data: { key: node.parent.data.key }
});
});
答案 0 :(得分:2)
Coffee脚本不赞赏在同一行上拥有匿名对象属性。添加一个换行符就可以解决这个问题......
$("#discipline-list", @el).dynatree({
fx: { height: "toggle",
duration: 100 },
initAjax: {
url: "/disciplines",
data: { mode: "funnyMode" }
},
onLazyRead: (node) ->
console.log(node);
node.appendAjax({
url: "/disciplines_details",
data: { key: node.parent.data.key }
});
});
编辑:如何将js转换为咖啡脚本......
转到http://js2coffee.org/并粘贴js(从您的版本更正)
$("#discipline-list", this.el).dynatree({
fx: { height: "toggle",
duration: 100 },
initAjax: {
url: "/disciplines",
data: { mode: "funnyMode" }
},
onLazyRead: function(node){
console.log(node);
node.appendAjax({ url: "/disciplines_details",
data: { key: node.parent.data.key }
});
}
});
你最终会得到结构良好的咖啡脚本......
$("#discipline-list", @el).dynatree
fx:
height: "toggle"
duration: 100
initAjax:
url: "/disciplines"
data:
mode: "funnyMode"
onLazyRead: (node) ->
console.log node
node.appendAjax
url: "/disciplines_details"
data:
key: node.parent.data.key
答案 1 :(得分:0)
我不知道到底出了什么问题,但写出它的更规范的方法是
node.appendAjax
url: "/disciplines_details"
data:
key: node.parent.data.key
对于这样的编译错误,请先转到Try Coffeescript并查看它是如何解析的。这使得在大多数情况下修复变得非常容易和快速。
答案 2 :(得分:0)
同一行上的对象属性使解析器混乱:
node.appendAjax({url: "/disciplines_details",
只需将url
移至下一行即可:
node.appendAjax({
url: "/disciplines_details",
那就是说,你还在写javascript。
空白在coffeescript中很重要(即你不能缩小它)。正确的缩进是必不可少的,这个代码都是错误的。修复缩进,删除逗号和分号:
$("#discipline-list", @el).dynatree({
fx: {
height: "toggle"
duration: 100
}
initAjax: {
url: "/disciplines",
data: { mode: "funnyMode" }
}
onLazyRead: (node) ->
console.log(node)
node.appendAjax({
url: "/disciplines_details"
data: { key: node.parent.data.key }
})
})
然后继续删除括号和括号,如@ Billy的最后一个样本。如果你不舒服,你应该尝试坚持使用普通的javascript一段时间。