0

이것을 사용하여 http://jsfiddle.net/rniemeyer/NFbxc/ 나는 거의 모든 것을 내 필요를 실현하는 거의 동일한 물건 (http://jsfiddle.net/uhtshka/HE94X/)을 만들지 만, 하나의 문제는 여전히 존재합니다. folowing link에서 볼 수 있듯이 우리가 사용하는 배열은 매우 간단합니다. 종류의 :녹아웃을 사용한 배열 속성 필터링. 중첩 된 객체 또는 다른 방법으로 작업해야합니까?

var simpleArray = [ 
        {... som data ...}, 
        {... som data ...}, 
        {... som data ...}]; 

그러나 임 같은 더 복잡한 배열 구조와 동일한 기능을 실현하기 위해 노력 :

var notsosimpleArray = [{ 
    dayname: 'Monday', rows:[ 
      col1: 'data1', 
      col2: 'data2', 
      col3: 'data3', 
    ]},{dayname: 'Tuesday', rows:[ 
      col1: 'data1', 
      col2: 'data2', 
      col3: 'data3', 
    ]}]; 

이 가능가 동일한 기능을 절약 함께 할 수인가요?

+0

무엇이 문제인지 모르겠다. filterByDay 메소드는 잘 작동하고 테이블에는 월요일이있는 첫 번째 행만 포함된다. 또한 행 추가 버튼이 작동 중입니다 ... – nemesv

+0

예,하지만 서버에서 가져올 수있는 많은 행을 사용해야합니다. 그 모든 종류의 화살을 가지고 일해야하는 이유가 그 7 일 모두를받는 것입니다. 매일 매일 낮과 많은 행으로 구성됩니다. 현재 코드를 사용하면 하나의 행만받을 수 있고 많은 행이 필요합니다. – uhthska

답변

1

당신이 묘사하고있는 것처럼 확실히 복잡한 객체에 녹아웃을 사용할 수 있습니다.

참조 된 JSFiddle에 몇 가지 문제가 있습니다. (var1-5를 설정하고 창 객체에서 참조 했습니까?) 행 추가 기능의 주소를 지정하지 않았으므로 예제를 사용하여 바이올린을 업데이트했습니다. rows 배열을 매일 데이터에 포함합니다. http://jsfiddle.net/HE94X/1/

그냥 필터 기능, 당신은 그냥 날보고 찾을 수있는 배열을 반환하고자되는 기억 :

여기 링크입니다. ko.utils.arrayForEach 함수는 배열이 해당 날짜의 객체 데이터에 포함되므로 실제로는 필요하지 않습니다.

이 논리를 현재 행 배열에 항목을 넣을 수 있도록 행 추가 기능으로 확장 할 수 있어야합니다.