0

例外的行为是:当用户将一个问题放到其他问题中时,两个问题之间的顺序会发生变化

在编写视图之前,Encuesta.View.Pregunta实现了切换问题的行为并且工作正常,控制器方法mvPregunta将两个问题之间的位置更改为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