0

例外的な動作は次のとおりです。ユーザーが質問を他の質問にドロップすると、2 つの質問の間で順番が変わります。

ビューを記述する前に、Encuesta.View.Pregunta質問を切り替えるための動作が実装され、正常に動作します。コントローラー メソッドmvPreguntaは、2 つの質問の間の場所をnumero.

Encuesta.View.Pregunta質問が切り替えられたときのビューで新しい質問によってmvPregunta切り替えられますが、ビューは変更されません

脚本

@Encuesta.View.reopen
    Pregunta: Em.View.extend
        tagName: 'span'
        editMode: false,
        attributeBindings: 'draggable',
        draggable: 'true'
        doubleClick: (ev) ->
            @set 'editMode', true
        dragStart: (ev) ->
            data = ev.originalEvent.dataTransfer
            data.setData 'numero', @get 'content.numero'
        dragEnter: (ev) ->
            ev.preventDefault()
            return false;
        dragOver: (ev) ->
            ev.preventDefault()
            return false;
        drop: (ev) ->
            numero = ev.originalEvent.dataTransfer.getData 'numero'
            if numero isnt @get 'content.numero'
                App.get('router.myController').mvPregunta numero, @get 'content.numero'
            ev.preventDefault()
            return false;

    PreguntaTextField: Em.TextField.extend
        editModeBinding: 'parentView.editMode'
        didInsertElement: ->
            @$().focus()
        insertNewline: ->
            @set 'editMode', false
        focusOut: (ev) ->
            @set 'editMode', false

テンプレート

{{#each item in controller.items}}
    <li>
        {{#view Encuesta.View.Pregunta
            contentBinding="pregunta"}}
            {{#if view.editMode}}
                {{view Encuesta.View.PreguntaTextField
                    valueBinding="view.content.texto"}}
            {{else}}
                {{view.content.texto}}
            {{/if}}
        {{/view}}
    </li>
{{/each}}
4

0 に答える 0