2

私はこの有効な 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/

4

1 に答える 1

5

scope.todos.push暗黙的なオブジェクトで始まる暗黙的なブロックに対して関数を呼び出しています。doLiveScript ではこの特殊なケースが行われないため、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 をお使いいただき、ありがとうございます。

于 2012-07-22T02:34:02.547 に答える