我有这个有效的CoffeeScript,并希望将其转换为LiveScript。有人能解释一下为什么它不能转换吗?还给出了一个转换的?
TodoCtrl = (scope) ->
scope.addTodo = ->
scope.todos.push
text: scope.todoText
done: false
scope.todoText = ''您可以使用它来编译CoffeeScript。
http://coffeescript.org/
您可以使用它来编译LiveScript。
http://gkz.github.com/LiveScript/
发布于 2012-07-22 10:34:03
您正在对以隐式对象开头的隐式块调用函数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!
https://stackoverflow.com/questions/11597271
复制相似问题