【发布时间】:2013-07-19 12:01:02
【问题描述】:
我正在尝试在我的 PhoneGap Durandal 项目中使用 Kendo 的 Mobile 小部件。 在此处查看示例源项目: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" />
我的 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,但在这里无关紧要)的问题,即:
让移动控件正确呈现的唯一方法是调用 kendo.mobile.Application。但是,如果将其放入不同的文件并使用 Durandal 加载,则无法找到正确的 HTML 元素。 我找不到放置此初始化代码的正确位置,因为它会引发此错误:“未捕获的错误:您的 kendo 移动应用程序元素不包含任何具有 data-role="view" 属性集的直接子元素。确保使用正确的容器实例化移动应用程序。”
kendoIndex.html 不是 Durandal,但它显示了如果正确调用了 kendo.mobile.Application,它应该如何呈现(首先运行它以查看我们想要实现的目标)
Shell:具有未渲染的 Kendo 布局。 主页视图:具有简单的 Kendo Mobile 视图 - 这不会被渲染。 关于:一个没有剑道的简单 HTML 页面
来源在 Guthub - 如果有人可以让 Kendo Mobile 与 Durandal 合作,我将不胜感激(或者至少确认它是否不可能(Telerik 对此毫无帮助))。 https://github.com/rodneyjoyce/DurandalKendoMobile/tree/master/App
【问题讨论】:
-
尝试将 KendoUI.Mobile(一种 o SPA 具有自己的布局/路由等)和 Durandal(另一种 SPA)结合起来有什么好处?为了解决上述子视图错误,请查看kendoui.com/forums/mobile/general-discussions/…。视图容器被封装在
div id='Rod'中,因此应该用作选择器。无论如何,我快速尝试了一下,虽然错误消息消失了,但剑道应用程序仍然无法运行。 -
优点:用户界面。我纯粹想要 Kendo Mobile 的 CSS 样式。新的 Flat 主题非常好(我混合使用 Ratchet/TopCoat 等,但我的 CSS 很糟糕)。我喜欢 Durandal,Kendo 看起来很棒,但它似乎没有集成(我需要关闭 Kendo 的 SPA 端)。出于兴趣,剑道的 SPA 部分与 Durandal 相比如何?我喜欢 Durandal 的简单性和抽象性(每个文件的视图和视图模型),但我似乎找不到将 Kendo 应用程序分割成多个文件的方法 - 我认为单个文件方法不适用于大型文件Javascript 应用程序
-
感谢您的尝试(我已经尝试了许多 Jquery 选择器的变体,所以我可能留下了一个旧的选择器) - 我也设法让它不抛出错误,但样式也不起作用...
标签: kendo-ui durandal kendo-mobile