2016-09-07 4 views
0

У меня есть кендо Obervable следующим образом:Кендо Наблюдаемые Изменить событие

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

, а затем я обязан это следующим образом:

kendo.bind($(".bind-view"), ViewModel); 

Теперь есть кнопка на странице. При нажатии меня нужно проверить, есть ли какие-либо изменения в этом ViewModel.

Я попытался

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

Но я не в состоянии получить это свойство ViewModel изменилось ли оно или нет.

+0

Можете ли вы показать, как выглядит html? – raven

+0

Не является ли целью наблюдаемого использовать MVVM? Зачем использовать jquery для обработки щелчка, когда вы можете привязать функцию click к viewmodel? – JFlox

ответ

1

Сцепление объекта ObservableObject change event внутри обработчика кнопки click слишком поздно. Вам нужно сделать это сразу же после создания ObservableObject.

Внутри обработчика change вы получите информацию об изменении . Используйте эту информацию, чтобы поднять флагом JavaScript или сохранить необходимые данные, чтобы вы могли использовать их позже в обработчике click кнопки.

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) { 
     // ... 
    } 
});