0

我应该将这些绑定组合成一个绑定吗?这会提高性能吗?我也可以在父绑定中显式调用绑定,这样我仍然可以对逻辑进行一些封装。

<div class="game clearfix draggable-active draggable-item" data-bind="
draggableCss: { game: $data }, 
draggableGameHandler : { disabled: (!$data.Matchup || $data.Occupied), disabledDrop: ($data.Disabled() || $data.Occupied) }, 
click: function() { alert('test') }">
4

1 回答 1

0

您当然可以使用绑定处理程序的第三个参数来访问元素上的其他绑定。这是用于诸如optionsText, optionsValue,valueUpdate等之类的东西,因为它们不是真正的绑定。

所以,如果你有这样的绑定:

ko.bindingHandlers.draggableGameHandler = {
    init: function(element, valueAccessor, allBindingsAccessor, data, context) {
         var allBindings = allBindingsAccessor();

         //can access allBindings.draggableCss and allBindings.draggableDrop
    },
    update: function(element, valueAccessor, allBindingsAccessor, data, context) {

    }
};

至于性能提升,它有点取决于你在做什么。如果您在可以共享的多个绑定中重复逻辑/工作,那么您可能会看到提升。

于 2013-07-19T16:57:07.330 回答