应用标准的业务代码

Apply a standard business code

本文关键字:代码 业务 标准 应用      更新时间:2023-09-26

实际上我有一个这样的处理程序

ko.bindingHandlers.setElementVisibility = {
    init : function ( element, valueAccessor, allBindingsAccessor, viewModel, bindingContext ) {
        var val = valueAccessor ( );
        if ( val !== undefined && val !== null && val !== '' ) {
            $ ( element ).addClass ( 'show' );
            return;
        }
        $ ( element ).attr ( 'class', 'hidden' );
    }
};

View中有

<span data-bind="text: Name, setElementVisibility: Name">

我将在我的ViewModel中应用所有可观察变量的检查,因为它现在是,但没有在视图中写入函数。这可能吗?我可以扩展可观察对象吗?

首先,您可以使用css绑定来代替

<span data-bind="text: Name, css: Name() ? 'show' : 'hidden'"></span>

也可以将两个绑定合并为一个:

ko.bindingHandlers.showIfPresent = {
        init : function ( element, valueAccessor, allBindingsAccessor, viewModel, bindingContext ) {
            var val = valueAccessor();
            ko.applyBindingsToNode(element, {text : val, css : val() ? 'show' : 'hidden'})
        }
    };
视图

<span data-bind="showIfPresent : Name"></span>