我有这个有效的 CoffeeScript,并希望将其转换为 LiveScript。有人可以解释为什么它无法转换吗?还给一个转换后的吗?
TodoCtrl = (scope) ->
scope.addTodo = ->
scope.todos.push
text: scope.todoText
done: false
scope.todoText = ''
您可以使用它来编译 CoffeeScript。
您可以使用它来编译 LiveScript。
最佳答案
您正在针对以隐式对象开头的隐式 block 调用函数scope.todos.push
。您必须在 LiveScript 中使用 do
,因为它不会执行这种特殊情况(只需将 do
视为 block 周围的括号)。请参阅https://github.com/gkz/LiveScript/issues/50由于原因。
您想要的代码:
TodoCtrl = (scope) ->
scope.addTodo = ->
scope.todos.push do
text: scope.todoText
done: false
scope.todoText = ''
这相当于(即do
只是括号)
TodoCtrl = (scope) ->
scope.addTodo = ->
scope.todos.push(
text: scope.todoText
done: false
)
scope.todoText = ''
很高兴看到您使用 LiveScript!
关于coffeescript - 将 CoffeeScript 代码转换为 LiveScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11597271/