0

チュートリアルに従っていましたが、チュートリアルはオブジェクト コントローラ用です。配列コントローラーで、テキスト フィールドのオブジェクトを適切に渡して、そのモデル オブジェクトの更新をトリガーするにはどうすればよいですか?

現在、ダブルクリックして何らかの値を入力できます。Enter キーを押すと、値と未定義のメソッド セットが取得されます。

Uncaught TypeError: Object asdasdasdasdasd has no method 'set'

生の値をコントローラーに渡し、そこからメソッドを実行しようとしていると思います。実際のモデルを渡すにはどうすればよいですか?

意見:

<ul>
  {{#each}}
    <li {{bind-attr class="isEditing:editing"}} {{action "editWorkout" this on="doubleClick"}}>
      {{#if isEditing}}
        {{view Ember.TextField class='edit' action="updateWorkout"}}
      {{else}}
        {{#link-to 'workout' this}} {{title}} {{/link-to}}
      {{/if}}
    </li>
  {{/each}}
  <li>
    {{newWorkoutName}}
  </li>
</ul>

コントローラ:

EmberWorkouts.WorkoutsController = Ember.ArrayController.extend

  actions:
    editWorkout: (workout) ->
      workout.set('isEditing', true)

    createWorkout: ->
      title = @get('newWorkoutName')

      workout = @store.createRecord('workout', title: title)
      @set('newWorkoutName', '')
      workout.save()

    updateWorkout: (workout) ->
      workout.set('isEditing', false)
      workout.save()

  isEditing: false

調査したい場合は、ここにレポしてください: https://github.com/ecl1pse/ember-workouts/tree/master/app

4

1 に答える 1