NameCtrl OnStatusChange-Event часто вызывается
Я использую NameCtrl, чтобы показать более конкретные пользовательские данные в списке пользователей. Событие OnPropertyClosed вызывается при изменении статуса отображаемого пользователя. К сожалению, в моем приложении оно вызывается более 5 раз подряд с одним и тем же пользователем и одинаковым статусом. Это должно произойти, или я могу что-то сделать, чтобы остановить?
У меня есть две привязки для нокаута. Блок инициализации будет выполняться для каждого пользователя. Имя Ctrl-Binding лежит на промежутке i, в котором отображается имя пользователя и статус.
ko.bindingHandlers['nameCtrl'] = {
init: function (element, valueAccessor) {
var value = valueAccessor();
var user = ko.unwrap(value);
$(element).hover(function () {
NameCtrlViewModel.prototype.showOOUI(this, user);
}, function () {
NameCtrlViewModel.prototype.hideOOUI();
});
}
};
Привязка statusIndicator к элементу, который показывает статус. С помощью метода GetStatus (предоставляемого NameCtrl) я "регистрирую" пользователя для StatusChange-Listener, который выполняет OnStatusChangedEvent.
ko.bindingHandlers.statusIndicator = {
init: function (element, valueAccessor) {
var value = valueAccessor();
var user = ko.unwrap(value);
$(element).data("user", user);
NameCtrlViewModel.prototype.nameCtrl.GetStatus(user, "1");
}
};
Вот как я устанавливаю свою функцию как вызываемую при изменении статуса
self.nameCtrl.OnStatusChange = self.onStatusChange;
И здесь я обновляю свой statusIndicator текущим статусом.
NameCtrlViewModel.prototype.onStatusChange = function (user, status, id) {
};
Теперь, как уже упоминалось ранее, моя функция onStatusChange иногда вызывается более 5 раз подряд с тем же статусом и пользователем. В списке со многими пользователями я боюсь, что это замедлит работу моего приложения.
Привет Темурон