kendo-ui - 为什么 Kendo View 上的“显示”事件会触发两次?
问题描述
如果将 Kendo 视图渲染为 Layout(使用 layout.showIn()),则视图的 show 事件会触发两次。有趣的是,如果视图直接呈现到 DOM 元素中(使用 view.render()),则该事件只会触发一次,就像它应该的那样。
该代码很好地从 Kendo UI Dojo thingee 复制而来。我想知道你能不能运行这个: https ://dojo.telerik.com/AkOwiMAZ/2
<div id="app"></div>
<script>
var foo = new kendo.View("<span>Foo</span>", { hide: function() { console.log("Foo is hidden now"); }, show: function() { console.log( "Foo is shown now"); }});
var layout = new kendo.Layout("<header>Header</header><section id='content'></section><footer></footer>");
// Creating the layout, and using the showIn method to render the view
// is where I'm having the issue (2 'show' events fire)
layout.render($("#app"));
layout.showIn("#content", foo);
//
// But this way works fine (rendering directly to a DOM element) (just // one 'show' event fires)
//foo.render('#app');
</script>
我希望“显示”事件触发一次,因为它只显示一次:)
解决方案
这似乎是最新的 2019 R2 剑道版本 (2019.2.514) 中引入的错误。将您的示例切换为使用之前的 2019 R1 SP1 (2019.1.220) 版本会导致它按预期运行https://dojo.telerik.com/AkOwiMAZ/5
Telerik 通常在每个季度发布大约一个月后发布一个服务包;我们已经向他们提出了错误报告,因此它有可能在 2019 R2 SP1 中得到修复。否则,我想你最好的选择是暂时坚持使用 2019.1.220。希望这可以帮助。
编辑:确认已在 2019 R3 (2019.3.917) 版本中修复。
推荐阅读
- javascript - 带有socket.io websocket的博览会无法连接
- python - 我不明白为什么我的数据集中的列是 NaN
- c# - 在 Web 请求请求标头中传递 If-Modified-Since
- java - Java Socket:客户端等待服务器被接受
- javascript - 让 PIXI JS 从动态设置的高度和宽度进行缩放
- scala - 使用 scala 对 Spark 中的多个列进行相同的操作
- tensorflow - Keras 自定义损失,在 y_true 和 y_pred 中批量大小有错误
- c++ - OpenGL impostor-sphere:计算深度值时的问题
- c++ - 使用 Build Phases 上链接的 C++ 库编译 Xcode Swift 项目时出错
- node.js - 在 jest supertest 中开始集成测试之前清理测试数据库