knockout.js.禁用属性多条件绑定

2skhul33  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(131)

我有自定义绑定和一个使用此代码来观察元素的disable属性. init函数:

var updateAttributes = function () {
   disable = allBindingsAccessor().disable
   var isDisabled = disable === true || (disable != undefined && ko.isObservable(disable) && disable());
   $(element).prop('disabled', isLoading || !hasOptions || hasOneOption || !!isDisabled);
}

if (allBindingsAccessor().disable != undefined && ko.isObservable(allBindingsAccessor().disable)) {
     allBindingsAccessor().disable.subscribe(function () {
           updateAttributes();
           $(element).selectpicker('refresh');
     });
}

但现在我遇到了一个问题,如果禁用属性依赖于多个条件,如

disable: cond1() || cond2()

也许有人知道更好的办法来解决这个问题?

8ehkhllq

8ehkhllq1#

在我的情况下,我使用:

disable: ko.pureComputed(function() { return cond1() || cond2(); })

相关问题