在 Knockout 中覆盖小部件的功能

Posted

技术标签:

【中文标题】在 Knockout 中覆盖小部件的功能【英文标题】:Override the feature of widget in Knockout 【发布时间】:2018-02-02 06:23:00 【问题描述】:

我在敲除中定义了一个小部件,如下所示的 html

<div class="container">
    <ul data-bind="fastForEach: employees">
        <li class="item" data-bind="css:  'noclose': !$parent.isCloseVisible, 'withEdit': $data.showEdit ">
            <div>
                <i data-bind="click: $parent.onClick, visible: $parent.isCloseVisible" class="itemClose"></i>
                <span class="item" data-bind="text: $data[$parent.displayText]"></span>
                <span data-bind="if: $data.showEdit" class="withEdit">
                    <i class="list"></i>
                </span>
            </div>
        </li>
    </ul>
</div>

这个小部件正在渲染,如下图所示。

现在没有为 edit 图标处理点击事件(这只是为了显示目的)。而且我不允许更改小部件的代码。

那么有没有其他方法可以制作这个铅笔图标clickable 并处理我页面中的点击事件?

【问题讨论】:

不允许修改密码?比你应该如何添加新功能?您必须将 click: function(e) 数据绑定添加到 .withEdit 块... 【参考方案1】:

我猜你总是可以附加一个标准的点击处理程序

$(".withEdit").click(function () 
    var employee = ko.dataFor(this);
    // do whatever you like with the employee observable
);

在使用knockout时,我总是不喜欢像这样使用jQuery并使用knockout方法,但是既然你提到你不能改变现有的代码,这可能是一个选项

【讨论】:

很好的答案,特别是考虑到规定。

以上是关于在 Knockout 中覆盖小部件的功能的主要内容,如果未能解决你的问题,请参考以下文章

在 QWidget 上绘画以覆盖整个小部件

MobileFirst 混合应用程序中键盘覆盖的小部件

使用异步数据调用在小部件内绑定“foreach”

如何在颤振应用程序之上覆盖小部件?

如何覆盖 Flutter 中的 Checkbox 小部件类?

根据父级大小按比例缩小小部件中的所有子级