바인딩 (여기서 유형의 텍스트 또는 IMG가 될 수 있습니다) 경우 내에서 불필요한하는 div를 제거하기 또는 텍스트 한 무리. 그래서 if binding을 사용하고 있습니다. result looks the way I expected,하지만 문제는 기본 HTML에 다음 문이 false를 반환하는 경우나는 다음과 같은 구조의 관찰 배열을 녹아웃
<div data-bind="foreach: elements">
<div data-bind="if: type == 'text'"><div data-bind="text: info">Hello</div> </div>
<div data-bind="if: type == 'img'"></div> // Do not want it to be here
<div data-bind="if: type == 'text'"></div> // Do not want it to be here
<div data-bind="if: type == 'img'"><img data-bind="attr: { 'src': info}" src="http://cdn.zendesk.com/images/documentation/apps/logo-small.png">
</div>
</div>
그것은 빈 <divs>
를 삽입 유지합니다.
나는 나는 다음과 같은 오류가 발생했습니다 putting if and text binding in the same element으로 원하는 것을 달성했을 때 :
내가 바인딩 경우 내 출력 HTML에서 불필요한하는 div 제거 할 수있는 방법Multiple bindings (if and text) are trying to control descendant bindings of the same
?
if 바인딩을 사용하여 구현하는 것이 불가능할 경우 다른 방법으로이 작업을 수행 할 수 있습니까? 왜냐하면 내가 '텍스트'또는 'img'유형뿐만 아니라 '비디오'및 여덟 가지 다른 것들을 가질 것이기 때문에 나는 그것들을 공예품처럼 거기에 모두 비어있게 할 것입니다.
고맙습니다. 주석이 DOM 트리의 크기를 증가시키지 않기 때문에 이것이 내가 원하는 것입니다. –
'if'의 묶음 대신에'template' 바인딩을 사용하여이 접근법을 정리할 수 있습니다 : http://jsfiddle.net/gc4um/1/ – nemesv