2016-09-07 5 views
0

나는 검도 Obervable 있습니다. 클릭하면이 ViewModel에 변경 사항이 있는지 확인해야합니다.검도 관찰 가능한 변경 이벤트

나는

$(".ClearAnalysisInfo").on('click', function (event) { 
     ViewModel.bind("change", function (e) { 
     //Some code 
     }); 
    }); 

을 시도하지만 변경 여부 나는이 뷰 모델 속성을 얻을 수 아니에요.

+0

html 모양이 어떻게 보이는지 보여 줄 수 있습니까? – raven

+0

MVVM을 사용하는 관찰 대상의 목적이 아닙니까? 클릭 기능을 뷰 모델에 바인딩 할 때 jquery를 사용하여 클릭을 처리하는 이유는 무엇입니까? – JFlox

답변

1

ObservableObject의 change event을 단추의 click 처리기 안에 바인딩하는 것은 너무 늦었습니다. ObservableObject를 만든 직후에이 작업을 수행해야합니다.

change 처리기 내부에서 변경된 필드에 대한 정보를 받게됩니다. 이 정보를 사용하여 나중에 버튼의 click 처리기에서 사용할 수 있도록 일부 JavaScript 플래그를 발생 시키거나 필요한 세부 정보를 저장하십시오.

var viewModelChanged = false; 

var ViewModel = kendo.observable({ 
    ID: 1, 
    TITLE: "SomeValue", 
}); 

ViewModel.bind("change", function (e) { 
    viewModelChanged = true; 
}); 

$(".ClearAnalysisInfo").on('click', function (event) { 
    if (viewModelChanged) { 
     // ... 
    } 
});