2011-01-28 5 views
0

{{if}} 블록 내에서 JQuery.tmpl()을 사용하여 문자열 값을 조회하려고하는데 어떤 이유로 작동하지 않습니다.JQuery tmpl이 if 블록에서 예상대로 작동하지 않습니다.

많은 종류의 패널이있는 대시 보드를 렌더링하는 데 KnockoutJS를 사용하고 있습니다. 각 패널에는 어떤 유형의 패널인지 알려주는 Type 속성이 있습니다. 여기

var data = {"Panels": [ 
    {"Type": "A", ... }, 
    {"Type": "B", ... }, 
    {"Type": "C", ... }, 
]}; 

다른 div 태그가 Type에 따라 렌더링하는 템플릿입니다 :

<script id="template" type="text/x-jquery-tmpl"> 
    {{if Type == "A"}} 
    <div>A</div> 

    {{else Type == "B"}} 
    <div>B</div> 

    {{else Type == "C"}} 
    <div>C</div> 

    {{else}} 
    <div>'${Type}' is invalid!</div> 

    {{/if}} 
</script> 

을 그러나 나는, 그래서, 여기 내 데이터가 어떻게 보이는지의 (매우 간단) 개념은 이 같은 항상 GET 출력 : 나는 문자열 속성 (. 즉 Type)를 확인하려면 어떻게

<div>'A' is invalid!</div> 
<div>'B' is invalid!</div> 
<div>'C' is invalid!</div> 

01 년을 사용블록?

미리 감사드립니다. 당신이 시도하고있는 무슨에서 내 샘플에 대해 다른 아무것도
http://jsfiddle.net/rniemeyer/cnzeg/

있습니까 : 여기

답변

0

는 JSFiddle에 샘플의 작업 복사본입니까?

var data = {"Panels": [ 
    {"Type": "A", ... }, 
    {"Type": "B", ... }, 
    {"Type": "C", ... }*,* 
]}; 

당신이 생각보고있는 문제가 발생하지 및 실제 코드에서 가능성이 아니 었겠습니까 : IE에서 문제가 발생할 수 있습니다

만 다른 것은 여기에 패널 배열에 후행 쉼표 .

+0

감사합니다. 나는 내가 가지고 있다고 생각하는 문제를 보여주기 위해 해결책을 업데이트했다 : http://jsfiddle.net/TrailHacker/cnzeg/2/ – Luc

+0

나는 단지 이것을 내가 나의 대답으로 받아들이고있다는 다른 의견으로 업데이트하고 싶었다. 내 문제를 더 조사해야합니다. 내 문제가 제 코드에서 뭔가 다른 것을 증명했습니다. :) 다시 한번 감사드립니다! – Luc

+1

다음을보십시오 : http://jsfiddle.net/rniemeyer/zRqrw/. 매핑 플러그인의 경로가 내 피들에서 올바르지 않은 것 같아서 업데이트했습니다. 주요 변경 사항은 매핑 플러그인을 통해 관찰 가능한 모든 것을 살펴본 후 Type을()와 같은 코드에서 함수로 참조해야한다는 것입니다. 희망이 도움이됩니다. –

관련 문제