2017-01-09 1 views
1

테이블 템플릿이 누출되었습니다. 문제를 일으키는 코드를 한 줄로 찾아 냈습니다.Aurelia 가능한 메모리 누수

   <tbody> 
       <tr repeat.for="row of workListData.rows" click.delegate='resultItemClick($event, row)'>     
        <td repeat.for="col of workListData.columns"> 
         <template if.bind='col.name === "isChecked"'> 
          ${col.label} 
         </template> 
         <template if.bind='col.name !== "isChecked"'>    
          **${row.Properties[col.name]}** 
         </template> 
        </td> 
       </tr> 
       </tbody> 

$ {row.Properties [col.name]} 이이 광고는 현재 행을 취하고 열 값에 액세스하기 위해 컬럼 이름을 사용하여 문제를 일으키는 코드 라인은

+1

이 시도하고 어떤 차이가 있는지를 해결 값을 반환

불구하고 그 지원되는 경우

확실하지 않음 col.name === 'isChecked'? col.label : row.Properties [col.name]}'. 두 템플릿을 모두 제거하십시오 –

+0

Ok는 다시 업데이트해야합니다. 해당 라인이 누수를 멈추고 있다고 생각하지만 어딘가에있는 다른 코드 블록에있는 것일 수도 있습니다. – Infuser

+0

정확히 "누수가 있습니까?" –

답변

0

enter image description here이 좋아 내가이

    Leaks 
       <tr repeat.for="row of workListData.rows" click.delegate='resultItemClick($event, row)'>     
        <td repeat.for="col of workListData.columns"> 

        </td> 
       </tr> 

       Does not leak 
       <tr repeat.for="row of workListData.rows" click.delegate='resultItemClick($event, row)'>     

       </tr> 

그 확실히 중첩 된 반복의 문제에서 오는 repeat.for 중첩 때 나는 IE는 등의 작업 웹 서비스를 제거 코드를 단순화 경우 아우렐 리아입니다 새는 것 같다 예상대로

제 동료 중 한 사람이 다른 템플릿 컨트롤러를 주석 처리하는 데 재미있는 것을 발견했습니다. 누출이 멈추는 것은 컨트롤러가 주석 처리되지 않은 것 같아 보이지 않는 것 같습니다.

0

마지막으로 내가 템플릿에서이 작업을 수행하는 경우에는 확실히 한 가지 아우렐 리아는 몇 누출 아주 나쁜 경향을 갖고있는 것 같아요했다 보인다 누출에 위치한

$ {row.Properties [키]} `$ {: 지금 대신 함수에 객체와 키를 전달하고 문제