我有这个有效的 CoffeeScript 并希望将其转换为 LiveScript。有人可以解释为什么它无法转换吗?还给一个转换的?
TodoCtrl = (scope) ->
scope.addTodo = ->
scope.todos.push
text: scope.todoText
done: false
scope.todoText = ''
您可以使用它来编译 CoffeeScript。
您可以使用它来编译 LiveScript。
我有这个有效的 CoffeeScript 并希望将其转换为 LiveScript。有人可以解释为什么它无法转换吗?还给一个转换的?
TodoCtrl = (scope) ->
scope.addTodo = ->
scope.todos.push
text: scope.todoText
done: false
scope.todoText = ''
您可以使用它来编译 CoffeeScript。
您可以使用它来编译 LiveScript。
您正在scope.todos.push针对以隐式对象开头的隐式块调用该函数。您必须do在 LiveScript 中使用,因为它不会执行这种特殊情况(只需将其do视为块周围的括号)。有关原因,请参阅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!