在 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 中覆盖小部件的功能的主要内容,如果未能解决你的问题,请参考以下文章