我正在尝试在我的 PhoneGap Durandal 项目中使用 Kendo 的移动小部件。在此处查看示例源项目:https ://github.com/rodneyjoyce/DurandalKendoMobile/tree/master/App
我不明白将剑道初始化代码放在哪里(没有这个小部件不会呈现):
window.kendoMobileApplication = new kendo.mobile.Application($(document.body), {
skin: "flat"
});
我尝试将它放入 Index.html、shell.html 和特定的 Durandal 页面视图 (x.html)、shell.js、main、js 和 x.js,但这些都不起作用。
我的索引页面中有这些链接:
<script src="css/telerik/js/kendo.all.min.js"></script>
<link href="css/telerik/styles/kendo.mobile.flat.min.css" rel="stylesheet" />
My Durandal View 具有以下带有 Kendo Mobile 小部件的 HTML:
<section>
1
<div id="kendoindex">
<div data-kendo-role="view" data-kendo-title="View">
<header data-kendo-role="header">
<div data-kendo-role="navbar">
<span data-kendo-role="view-title">Title</span>
</div>
</header>
<ul data-kendo-role="listview">
<li>Item 1</li>
<li>Item 2</li>
</ul>
</div>
</div>
2
</section>
和我的 ViewModel 这个视图:
define(function (require)
{
function viewModel()
{
var self = this;
self.activate = activate;
function activate()
{
//window.kendoMobileApplication = new kendo.mobile.Application($("#kendoindex"), {
// skin: "flat"
//});
}
}
var vm = new viewModel();
return vm;
});
如果我不调用 kendoMobileApplication 则不会渲染 Kendo Mobile 小部件(它只显示没有 CSS 的“1 Title 2”(即 Kendo 没有转换它们)。
一切似乎都取决于在哪里调用它:Durandal 中的 kendoMobileApplication。
我遵循 Durandal 指南为 Kendo 绑定提供了自己的命名空间:http ://durandaljs.com/documentation/KendoUI/
更新 1
我创建了一个简单的 Durandal 1.2 项目,它突出了 Kendo Mobile 和 Durandal(以及 PhoneGap,但在这里无关紧要)的问题,即:
让 Mobile 控件正确呈现的唯一方法是调用 kendo.mobile.Application。但是,如果将其放入不同的文件并使用 Durandal 加载,则无法找到正确的 HTML 元素。我找不到放置此初始化代码的正确位置,因为它会引发此错误:“未捕获的错误:您的 kendo 移动应用程序元素不包含任何具有 data-role="view" 属性集的直接子元素。确保使用正确的容器实例化移动应用程序。”</p>
kendoIndex.html 不是 Durandal,但显示了如果正确调用了 kendo.mobile.Application 它应该如何呈现(首先运行它以查看我们想要实现的目标)
Shell :具有未渲染的剑道布局。主页视图:具有简单的 Kendo Mobile 视图 - 这不会被渲染。关于:一个没有剑道的简单 HTML 页面
来源在 Guthub - 如果有人能让 Kendo Mobile 与 Durandal 合作,我将不胜感激(或者至少确认它是否不可能(Telerik 对此毫无帮助))。 https://github.com/rodneyjoyce/DurandalKendoMobile/tree/master/App