컨트롤러의 속성에 바인딩을 시도하고 있지만 속성 이름 자체가 컨트롤러의 다른 속성으로 저장되어 있습니다. 디자인 타임에 속성 이름을 모른 채 속성에 바인딩해야합니다. 이것이 가능한가? 또는 일을하는 더 좋은 방법은 무엇입니까?핸들 바를 임의의 속성에 바인딩하는 방법은 무엇입니까?
ArrayController
의 내용을 테이블로 표시하는보기를 만들고 있습니다. ArrayController
에는 표시 할 속성 이름 목록이 있습니다 (columnsMeta
). 템플릿에서 컨트롤러의 모든 항목을 조사한 다음 모든 열을 반복하고 및이 열 값을 바인딩하도록하려고합니다.
{{#each row in controller}}
<tr>
{{#each col in columnsMeta}}
<td>{{getProperty col.property row}}</td>
{{/each}}
</tr>
{{/each}}
이 출력 :
Ember.Handlebars.registerBoundHelper('getProperty', function(property, obj) {
return obj.get(property);
});
다음 템플릿에서 도우미로 속성 이름과 개체를 전달할 :
한 시도는 속성 값을 얻기 위해 핸들 도우미를 만드는 것입니다 표의 각 텍스트와 각 텍스트 부분은 metamorph
태그로 둘러싸여 있지만 모델 속성의 값을 변경하면 템플릿이 업데이트되지 않고 실제로 바인딩되지 않은 것처럼 보입니다.
이 표기법은 작동하지 않습니다
{{row.[col.property]}}
{{row.[(col.property)]}}
은 "col.property"의 이름으로 재산 존재하지 않고 아무것도 인쇄되지 않습니다.
는 I는 엠 테이블 프로젝트 contentDidChange
를 사용하여 템플릿을 셀 내용을 공급하는 뷰에서 계산 된 속성을 생성하는 참조. Table Cell View in ember-table
하지만 정말 필요한가요? 덜 무거운 방법이 있습니까? 문법을 잘못 적용 했습니까?
감사합니다.
당신이 도우미를 디버깅 적이 있습니까? – Kingpin2k
헬퍼를 디버깅 할 때 무엇을 찾습니까? "id"또는 "title"과 같은 문자열로 속성의 적절한 이름이 전달되고 obj가 모델로 설정됩니다. 예상대로 작동하는 것 같아요, metamorph 태그가 ... 모델이 변경되면 그냥 업데이 트되지 않습니다. – Noland
죄송합니다. 업데이트하지 않은 부분을 완전히 놓쳐 버렸습니다. 너무 일찍 읽어보십시오. 묶인 도우미는 속성으로 전송 된 속성을 보게됩니다. 바인딩 된 도우미는 보내진 속성 중 하나에서 동적 속성을 가져옵니다. 바인딩 된 도우미는 객체 참조 자체와 속성 이름을보고 있습니다. 변경되지 않기 때문에 업데이트를 알지 못합니다. – Kingpin2k