2014-04-22 4 views
0

클릭하면 currentTitle이 변경되지 않는 이유를 모르겠다. 클릭 할 때 녹아웃 관측 가능 변수의 값이 변경되지 않음

viewModel = { 
    articles: ko.observableArray([{ 
     id: 1, 
     title: "Article One", 
     content: "Content for article one."}, 
    { 
     id: 2, 
     title: "Article Two", 
     content: "Content for article two."}, 
    { 
     id: 3, 
     title: "Article Three", 
     content: "Content for article three."} 
               ]), 
    currentTitle: ko.observable("old") 
}; 


<div data-bind="foreach: viewModel.articles()"> 
<div data-bind="text:title,click: getTitle"></div> 
</div> 
<div data-bind="text: viewModel.currentTitle"></div> 


getTitle = function(){ 
     viewModel.currentTitle = "title"; 
} 
ko.applyBindings(viewModel); 

여기에 내 코드를 게시 됨 : http://jsfiddle.net/devnegikec/TBP43/

+0

[관찰 가능한 녹아웃에 업데이트하지 않는 설정 값의 중복 가능성 ] (http://stackoverflow.com/questions/19391415/setting-value-of-observable-not-updating-in-knockout) – nemesv

+0

만족스럽고 적절하게 질문에 답변 한 경우 대답을 허용으로 표시하십시오. – phuzi

답변

1

귀하의 getTitle 기능은 오히려 관찰을 업데이트보다 currentTitle의 값을 업데이트합니다.

시도 : @phuzi 말했듯이

getTitle = function(){ 
    viewModel.currentTitle("title"); 
} 
0

, 당신은 정확하게 관찰을 업데이트하지 않는,하지만 당신은 또한 너무 함수에 선택한 항목을 통과해야합니다

getTitle = function(item){ 
    viewModel.currentTitle(item.title); 
} 

여기를 참조하십시오 : updated fiddle

+0

덕분에 지금은 저에게 좋습니다. – Devnegikec

+0

@Devnegikec 답변에 만족하면 틱을 클릭하여 답변을 표시 할 수 있습니다. – Tanner

0

http://jsfiddle.net/TBP43/3/

가 변경 : getTitle to setTitle.

포함 된 세트는 viewmodel의 제목입니다.

제거 된 불필요한 'viewmodel.' 바인딩에서. 내가 뷰 모델에서 'chosenArticle'를 가지고 단순히

text: chosenArticle.title 

PS와 텍스트를 결합 추천 할 것입니다

는 : JQuery와 태그를 제거하십시오

관련 문제