私はノックアウトについて頭を悩ませ始めており、domを操作したりアニメーションを起動したりするコードをviewmodelに書くのが正しい場合などです。例として、私はdivへの参照を渡すこのバインディングを持っています。 tr をクリック
<tr data-bind="click: function(data, event){$parent.Select('#PanelWrapper', $data)}">
私のビューモデルには
self.Select = function (panel, e) {
console.log(ko.toJS(e));
if(self.SelectedEmployee() === e)return;
self.$PanelWrapper = $(panel);
var $Bottom = parseInt(self.$PanelWrapper.css("bottom"));
if($Bottom === 0){
self.$PanelWrapper.animate({
bottom:"-95"
}, 500, function(){
self.SelectedEmployee(e);
self.Editable(new Employee(ko.toJS(e)));
}).animate({
bottom:"0"
}, 500);
}else{
self.SelectedEmployee(e);
self.Editable(new Employee(ko.toJS(e)));
self.$PanelWrapper.animate({
bottom:"0"
}, 500);
}
};
これが有効で、vmmv の方法論に従っているかどうか疑問に思っています。どんな助けでもいただければ幸いです