gpt4 book ai didi

kendo-ui - 如何让 Backbone 路由器 + Kendo UI Mobile (tabstrip) 协同工作?

转载 作者:行者123 更新时间:2023-12-02 19:16:15 25 4
gpt4 key购买 nike

如何让 Backbone 路由器 + Kendo UI Mobile(tabstrip)协同工作?

我刚刚开始使用 Backbone,一直在考虑将其与 UI 结合使用。我可以通过禁用 JQM 的路由,使用 Backbone 和 jQuery Mobile (JQM) 来实现此目的,如本文所述:http://coenraets.org/blog/2012/03/using-backbone-js-with-jquery-mobile/

// Disable JQM routing
$(document).bind("mobileinit", function () {
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
});

// Backbone Router
// Create backbone view, append it to the body, and then use JQM to change to that page
home: function () {
page = new HomeView();
page.render();
$('body').append( $(page.el) );
$.mobile.changePage( $(page.el), {changeHash:false} );
}

通过 Kendo UI Mobile 文档,我得到了这个工作页面:

<!DOCTYPE html>
<html>
<head>
<title>My App</title>
<link href="http://cdn.kendostatic.com/2012.3.1315/styles/kendo.mobile.all.min.css" rel="stylesheet" />
</head>
<body>

<section data-role="layout" data-id="default">
<header data-role="header">
<div data-role="navbar">My App</div>
</header>

<!--View content will render here-->

<footer data-role="footer">
<div data-role="tabstrip">
<a class="tab-a" data-icon="home" href="#home">Home</a>
<a class="tab-a" data-icon="bookmarks" href="#about">About</a>
</div>
</footer>
</section>

<div data-role="view" data-layout="default" id="home">Home Page</div>
<div data-role="view" data-layout="default" id="about">About Page</div>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://cdn.kendostatic.com/2012.3.1315/js/kendo.all.min.js"></script>

<script>
var app = new kendo.mobile.Application();
</script>

</body>
</html>

它有一个带有 2 个按钮的选项卡,可让您在 2 个 View 之间切换。

我可以让它与 Backbone 路由器一起工作 - 当单击选项卡条按钮时调用路由“home”和“about”,但无法弄清楚如何拦截单击事件,使我能够生成 View ,将其附加到 DOM,然后确保相关的 tabstrip 按钮类更改为表示选定状态。

我尝试向 tabstrip 链接添加一个类 - $('.tabstrip-link').click( function () {alert( 'Clicked' ); } ) - 但无济于事(偶尔触发)。如何从正文标记之间删除 View ,并通过 Backbone 路由生成这些 View ,将它们附加到页眉和页 footer 分之间的布局,然后让 tabstrip 更改继续其业务?

最佳答案

如果您想使用 Backbone 路由器,您可能需要禁用 Kendo 路由器。移动设备中的 Kendo Router 并非设计为可禁用的。然而,乍一看,如果在创建应用程序之前放置以下内容,则对我有用。

kendo.mobile.Application.prototype._startHistory = function() {};
kendo.mobile.Application.prototype.router = {destroy: function() {}};

它之所以有效,是因为如果未创建路由器,Pane 有自己的历史记录管理。

关于kendo-ui - 如何让 Backbone 路由器 + Kendo UI Mobile (tabstrip) 协同工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14887910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com