2016-08-11 8 views
0

저는 최근에 JsViews로 작업했습니다. 하지만 $ .observable으로 문제를 받고 (배열) 때 .refresh() 내가 개체 내가 각각의 요소를 통해 루프에 템플릿을 사용하고JsViews가 업데이트 후 스크립트 태그를 제거하지 않습니다. 배열에서 관찰 가능 api로 변경합니다.

countries = [ 
    {country : 'India'}, 
    {country : 'USA'}, 
    {country : 'Africa'} 
] 

의 배열이있는 경우

그냥 말할 수 배열은 콘텐츠를 내 요구 사항에 렌더링하지만 HTML 구조를 보면 이렇게 표시됩니다.

<html> 
    <body> 
    <script type="jsv#1"></script> 
    <div class="country">India</div> 
    <script type="jsv/1"></script> 
    <script type="jsv#2"></script> 
    <div class="country">USA</div> 
    <script type="jsv/2"></script> 
    <script type="jsv#3"></script> 
    <div class="country">Africa</div> 
    <script type="jsv/3"></script> 
    </body> 
<html> 

하지만 배열에 새 요소가 생기면 맨 위로 밀어 넣습니다. 다음 배열이 있습니다.

countries = [ 
    {country : 'Canada'}, 
    {country : 'India'}, 
    {country : 'USA'}, 
    {country : 'Africa'} 
] 

그리고 제가 적용

$.observable(countries).refresh(countries); 

내가 뭘 HTML 구조에 얻을 것은 : 태그 'JSV # 1', 'JSV # 2', 'JSV 여기

<html> 
    <body> 
    <script type="jsv#1"></script> 
    <script type="jsv/1"></script> 
    <script type="jsv#2"></script> 
    <script type="jsv/2"></script> 
    <script type="jsv#3"></script> 
    <script type="jsv/3"></script> 
    <script type="jsv#4"></script> 
    <div class="country">Canada</div> 
    <script type="jsv/4"></script> 
    <script type="jsv#5"></script> 
    <div class="country">India</div> 
    <script type="jsv/5"></script> 
    <script type="jsv#6"></script> 
    <div class="country">USA</div> 
    <script type="jsv/6"></script> 
    <script type="jsv#7"></script> 
    <div class="country">Africa</div> 
    <script type="jsv/7"></script> 
    </body> 
<html> 

# 3 '및 해당 닫기 태그는 제거되지 않습니다.

나는이 올바른 행동인가 2012 년

에 출시 JsViews V1.0에이 문제를 발견하거나 내가 삽입 요소의 서로 다른 접근 방식으로 가야한다.

감사합니다.

답변

2

올바른 동작이 아닙니다.

V1.0이 출시되지 않아 사용중인 버전이 명확하지 않습니다.

최신 버전으로 전환 한 다음 다시 시도하십시오 : http://www.jsviews.com/#download.

국가를 새 배열로 설정하지 말고 새 배열에서 refresh()을 호출하십시오. 오히려해야 할 일 :

var countries = [ 
    {country : 'India'}, 
    {country : 'USA'}, 
    {country : 'Africa'} 
]; 

tmpl.link("#result", countries); 

$.observable(countries).refresh([ 
    {country : 'Canada'}, 
    {country : 'India'}, 
    {country : 'USA'}, 
    {country : 'Africa'} 
]); 

http://www.jsviews.com/#refresh을 참조하십시오.

그러나 더 잘 삽입하려면 insert()을 사용하십시오. http://www.jsviews.com/#insert을 참조하십시오.

+0

죄송합니다. 나는 v1.0PRE를 사용하고 있었다. 그것이 파일에서 얻을 수있는 것입니다. –

+0

최신 릴리스 (0.9.82)를 사용 중이고 #refresh와 #insert를 모두 사용하여 동일한 문제가 발생합니다. 이것이 이제까지 해결 되었습니까? – sdellis

+0

제대로 작동해야합니다.

Canada
...
Africa
<스크립트 유형 ="JSV/4 _ "><스크립트 유형 ="JSV/1 _ ">'또는 내가에 script' 태그 '를 많이 추가 뒤에 이유를 알고 궁금 @BorisMoore 유사한 – BorisMoore