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