我希望以最MVVM / Knockoutesque方式为单个ko.observable
设置更改动画。我可以自己处理动画并查看更新:
function ViewModel() {
var self = this;
self.value = ko.observable("start value");
$("button").on("click", function () {
$("#text").animate(animateOutProperties,
{
complete: function () {
self.value($("#value").val());
$("#text").animate(animateInProperties);
}
});
});
}
The above works exactly as I want it to
但是,上面没有充分利用双向数据绑定,因为我实际上是在监听事件并对值本身进行更改。使用data-bind: text
几乎没有意义,因为我现在可以使用jQuery来更新文本。
使用像self.value.subscribe
之类的东西来听取值的变化对我来说更有意义,我可以使用其他绑定来更新值 - 但是,尽我所能告诉我们无法同时获得旧值和新值。
我想使用beforeRemove
和afterAdd
之类的内容,但这些只适用于添加和删除observableArray
元素。
有没有办法处理上面适合MVVM /双向数据绑定理念的动画?