2013-05-16 3 views
0

MVC4/Knockout.js로 내 응용 프로그램을 가지고 있습니다. IE9에서 왜 오류가 발생하는지 알 수 없습니다. 오류 세부 정보는 다음과 같습니다. -Knockout-2.2.0.Debug.js IE9에서 오류 발생 "SCRIPT3 : 구성원을 찾을 수 없습니다." while sorting

SCRIPT3 : 구성원을 찾을 수 없습니다. 녹아웃 - 2.2.0.debug.js, 라인 1068 문자 13

Screenshot은 다음과 같습니다 :

IE9 Error screenshot

심지어 시간과에 대한 knockout-2.2.0.debug.js

감사를 포함 아니다 당신의 도움.

@Sivanv

+0

이다. 나는 이것이이 상황과 같이 힘들 수 있다는 것을 안다. –

+0

어떤 버전의 jQuery + jQuery UI를 사용하고 있습니까? –

+0

Jquery1.7, knockout 2.2 – sivanv

답변

0

RP Niemeyer's 솔루션을 사용할 수 있습니다, 그것은 나를 위해 일했습니다. 여기

ko.bindingHandlers.uiSortableList = { 
     init: function (element, valueAccessor, allBindingsAccesor, context) { 
      var $element = $(element), 
       list = valueAccessor(); 

      $element.sortable({ 
       containment: 'parent', 
       placeholder: 'placeholder', 
       update: function (event, ui) { 
        var item = ko.dataFor(ui.item[0]), 
         newIndex = ko.utils.arrayIndexOf(ui.item.parent().children(), ui.item[0]); 
        if (newIndex >= list().length) newIndex = list().length - 1; 
        if (newIndex < 0) newIndex = 0; 

        ui.item.remove(); 
        list.remove(item); 
        list.splice(newIndex, 0, item); 
       } 
      }); 
     } 
}; 

var ViewModel = function (items) { 
    this.items = ko.observableArray(items); 

    this.data = ko.computed(function() { 
     return ko.toJSON(this.items()); 
    }, this); 
}; 

    var vm = new ViewModel([ { name : 'foo' }, { name : 'bar' }, { name : 'baz' }]); 

ko.applyBindings(vm); 

그것이 jsFiddle 재현하는 것이 가능하다 jsFiddle 링크

+1

감사합니다. 내 문제가 해결되었습니다. – sivanv