2014-04-07 3 views
4

나는 이름으로 firstLetter에 의해 항목과 알파벳 순서를 두 개의 목록을 정렬 할.정렬 목록, 순서는 알파벳 순으로

나는 어떤 성공을하지 않고,이 시도했습니다

당신의 JSFiddle에서
var ViewModel = function() { 
    var self = this; 

    self.storedProceduresInDB1 = ko.observableArray([{ 
     Name: "A", 
     Id: 1 
    }, { 
     Name: "C", 
     Id: 3 
    }, { 
     Name: "B", 
     Id: 4 
    }, { 
     Name: "D", 
     Id: 2 
    }]); 

    self.storedProceduresInDB2 = ko.observableArray([{ 
     Name: "C", 
     Id: 3 
    }, { 
     Name: "E", 
     Id: 8 
    }, { 
     Name: "F", 
     Id: 7 
    }, { 
     Name: "B", 
     Id: 4 
    }]); 

    self.sortLists = function() { 
     self.storedProceduresInDB1.sort(function (left, right) { 
      return left.name == right.name ? 0 : (left.name < right.name ? -1 : 1); 
     }); 

     self.storedProceduresInDB2.sort(function (left, right) { 
      return left.name == right.name ? 0 : (left.name < right.name ? -1 : 1); 
     }); 
    }; 
} 

JSFiddle

+2

두 가지 문제가 있습니다. 사용 가능 바인딩에는'storedProceduresInDb1' 대'self.storedProceduresInDB1'이 있습니다. {: "A", ID : 1 이름}' – Origineil

답변

3

이 문제는 자바 스크립트는 대소 문자를 구분하고 코드가 케이스에 부합되지 않는 것입니다. 당신의 분류 코드 (소문자 N 통지) name을 참조하려고하는 동안 storedProceduresInDB1storedProceduresInDB2의 객체는 Name 키가 있습니다.

정확한 사례가있는 작업 바이올린 : http://jsfiddle.net/7zp5K/39/

+0

아, 그것은 .. 감사합니다 :) – Henrik

+0

이 가능하기 정렬 데이터 바인딩의리스트가 너무 쉬웠다 정렬 기능은'대 left.name' 오타,'있다? IE. <버튼 데이터 바인드 = "클릭 storedProceduresInDB1.sort (함수 (왼쪽, 오른쪽) { 복귀 left.Name right.Name == 0 (left.Name 시간과 도움에 감사드립니다. :) – Henrik

+0

예, 데이터 바인딩에 자바 스크립트를 추가 할 수 있습니다. 다음은 그 예입니다 : http://jsfiddle.net/7zp5K/40/. 비록 데이터 바인딩에 커스텀 함수를 넣지 않고 뷰 모델에 대한 메서드를 호출하는 것이 좋습니다. – Charlie

관련 문제