2013-01-16 2 views
1

목록 (ol 또는 ul)을 동적으로 생성하는 데 문제가 있습니다. 내가 직면 한 문제는 가끔 JSON에 따라 순서가 정해진 목록이 필요하고 때로는 순서가 정렬되지 않는다는 것입니다. 나는 당신이 orderedList이 참 또는 거짓이 될 수 있음을 볼 수있다, 여기 Javascript에서 ul과 ol 사이를 전환하는 방법은 무엇입니까?

<ol data-bind="foreach: items" ><li><a data-bind="text: $data"></a></li></ol> 

내 JSON입니다, 내 HTML은 여기

{ 
    items: ['a','b','c'], 
    orderedList: true 
} 

을 녹아웃을 사용하고 있습니다. true이면 ol을 사용해야하고 false이면 ul을 사용해야합니다. 나는 또한 복제를 피하기 위해. 이것을하는 어떤 방법.

+0

컨테이너를 사용하여 ul/ol 태그를 생성 할 필요가 없으며 각각의 경우에도 – ryadavilli

+0

@ryadavilli, 어떤 예가 될까요? – user960567

+0

시각적으로'ul'과'ol'의 유일한 차이점은'list-style-type'입니다. 'ul'에있는 항목의 번호를 'decimal'으로 설정하여 데이터에 따라 클래스 변경을 바인딩 할 수 있습니다. – charlietfl

답변

2

여기에 나는 조잡한 샘플을 넣었습니다. 테스트 할 수 없었습니다. 그러나 당신은 아이디어를 얻을 수 있습니다.

<!-- ko if : orderedList --> 
<ol> 
<!-- /ko --> 
<!-- ko ifnot : orderedList --> 
<ul> 
<!-- /ko --> 
<!-- ko foreach: items --> 
<li><a data-bind="text: $data"></a></li> 
<!-- /ko --> 
<!-- ko if : orderedList --> 
</ol> 
<!-- /ko --> 
<!-- ko ifnot : orderedList --> 
</ul> 
<!-- /ko --> 

편집 : 녹아웃의 경우 - 다른 조건이있다. 따라서 여러 Ko if 문을 사용해야합니다.

EDIT2 : OP 용으로 사용 된 코드의 버전.

<!-- ko if : orderedList --> 
<ol data-bind="foreach: items"> 
    <li><a data-bind="text: $data"></a></li> 
</ol> 
<!-- /ko --> 
<!-- ko ifnot : orderedList --> 
<ul data-bind="foreach: items"> 
    <li><a data-bind="text: $data"></a></li> 
</ul> 
<!-- /ko --> 
+0

천재적입니다. 감사합니다 – user960567

+0

내게 오류 코드를 제공하는 코드는 '일치하는 닫을 주석 태그를 찾을 수 없습니다 : ko if : orderedList' – user960567

+0

어느 위치에 있습니까? 코의 첫 번째 사용인가요? 아니면 두 번째? – ryadavilli

관련 문제