Có cách nào để gọi một lần một số phương pháp về giá trị đã thay đổi không? Tôi tạo ra wrapper cho bindingHandlers.value đó gọi phương pháp này:Gọi phương thức tùy chỉnh trên giá trị đã thay đổi
var update = bindingHandlers.value.update;
bindingHandlers.value.update = function(element, valueAccessor, allBindingAccessor, viewModel) {
var newValue = ko.utils.unwrapObservable(valueAccessor());
var elementValue = ko.selectExtensions.readValue(element);
var valueHasChanged = (newValue != elementValue);
update(element, valueAccessor, allBindingAccessor, viewModel);
if (valueHasChanged) {
myMethod();
}
}
Unfortunatelly khi tôi thay đổi một số myMethod giá trị được gọi là hai lần bởi vì đến dependencyObservable cũng được thay đổi. Bất kỳ ý tưởng?
tôi có máy tính cho thuê cần đối tượng với khoảng 20 thuộc tính và tôi muốn chuyển viewModel của tôi tới máy tính này làm tham số, vì vậy tôi muốn đăng ký với hầu hết các thuộc tính. –
Bạn luôn có thể lặp lại các thuộc tính và mỗi thuộc tính là một cuộc gọi 'observable' hoặc' observableArray' 'subscribe' (một cách dễ dàng có thể chỉ là kiểm tra nếu mỗi thuộc tính có chức năng 'subscribe') –
Cập nhật câu trả lời của tôi với một Phương thức 'subscribeAll', lưu ý rằng nó không làm đồ thị sâu, chỉ là những đồ thị cạn. –