У меня есть ko.observable обработки финикового объекта JS так:Knockout.js - Как изменить наблюдаемый объект JS Date?
vm.date = ko.observable(new Date());
Мне нужна простая функция, которая может увеличить или уменьшить дату на е дни. Вроде так:
vm.changeDay = function(x) {
// I want this function to increase or decrease date by x days each time it is called.
};
Проблема с моими текущими реализациями заключалась в том, что наблюдаемый vm.date не обновлялся в моем представлении. Вероятно, это связано с тем, что объект JS Date представляет собой нечто большее, чем простое строение, и его нужно разбить и собрать определенным образом, чтобы можно было наблюдать. Я пробовал использовать ko.computed для этого, но не удалось.
См jsfiddle для простого обзора проблемы: http://jsfiddle.net/tp6jb4x1/
Не уверен, что вы можете это сделать: data-bind = "click: changeDay (-1)", обновили свою скрипту для работы: http://jsfiddle.net/tp6jb4x1/1/ –
data-bind = "click: function() {changeDay (-1);} " – DaveB