2013-07-17 3 views
0

어떻게하면 새로 고침을 강제해야합니까? "제거"를 호출 할 때 업데이트 된 표가 있지만 인덱스의 번호가 다시 매겨지지 않습니다.보기 모델이 변경 될 때 JsViews # 인덱스가 업데이트되지 않습니다.

이전에이 문제를 겪은 사람이 있습니까?

**Remove function:** 
$("#result") 
    .on("click", ".change", function(){ 
    var dataItem = $.view(this).data; 
     $.observable(dataItem).setProperty("name", dataItem.name + "*"); 
    }) 
    .on("click", ".remove", function(){ 
    var index = $.view(this).index; 
     $.observable(people).remove(index); 
    }); 

http://jsfiddle.net/mawaru/mfMBA/

UPDATE : 나는 내가 그것을 알아 냈다고 생각합니다.

이 줄을 추가했습니다.

 $.observable(people).refresh(people); 

맞습니까?

답변

0

#index를 렌더링하는 태그는 데이터 바인딩되지 않습니다. 당신도 작성해야합니다 :

<span>{^{:#index + 1}}</span>

또는

<span data-link="#index + 1"></span>

이 때문에 $.observable(people).refresh(people);이 작동 호출 오히려 점진적으로 삽입 또는 제거하는 것보다 모든 항목을 다시는 렌더링합니다. 그러나 삽입과 삭제가 증분이 될 수 있기 때문에 위에서 제안한 접근 방식이 더 좋습니다.

+0

감사합니다. Boris! 그게 효과가 있었어! – mawaru

+0

삭제시 다른 자바 스크립트 함수에 업데이트 된 인덱스를 보낼 수있는 방법이 있습니까? onclick = "removeTags ({{: # index}})"를 시도하면 각 제거 후에 인덱스가 업데이트되지 않습니다. – user1776573

+0

예 -하지만 DOM 레벨 0 이벤트 바인딩을 사용하지 않는 것이 더 좋습니다. onclick = ... data-link = "{on removeTags}"를 사용하는 것이 좋습니다. 매개 변수를 전달할 수 있습니다 (data-link = "{on removeTags # 인덱스}").하지만 필요한 경우 색인을 전달할 필요가 없습니다. eventArgs.view.index를 사용하는 경우 "http://www.jsviews.com/#computed", "http://www.jsviews.com/#link-events"및 "http://www.jsviews.com/#samples"도 살펴보십시오./computed/shopping-cart @ tmpl "- 및 함수 : removeItem (ev, eventArgs). 매개 변수를 사용하면 함수 removeItem (indexParam, ev, eventArgs)이됩니다. { – BorisMoore

관련 문제