【问题标题】:Import dijit/dojo widgets into worklight palette将 dijit/dojo 小部件导入工作灯调色板
【发布时间】:2014-01-27 16:11:24
【问题描述】:

上个月我一直在使用 IBM Worklight,我发现即使在创建混合应用程序时导入了 Dojo 工具包,我也看不到我的调色板中的 dijit 组件和一些 dojo/dojox 组件导致错误。

这是我的配置:

  • Windows XP
  • Eclipse SDK 版本:3.7.2
  • IBM Worklight 5.0.5
  • Dojo 版本 1.8.1-20121024

因此在启动我的应用程序时出现错误:

加载资源失败:服务器响应状态为 404(未找到)

URL/ipad/1.0/default/dojox/dgauges/components/green/Horizo​​ntalLinearGauge.js

(我想显示一个滑块,只找到了这个仪表)

但我的项目中有 dojo 文件夹(里面有 dijit/dojo/dojox 文件夹)。

有人知道如何解决这个问题吗?

干杯

【问题讨论】:

  • 您可以尝试使用将近 2 年的更新版本 Worklight 6.1.0(您可以从 Eclipse > Help > Eclipse Marketplace > 搜索“worklight”获得它)。 Worklight 5.0.5 完全过时了。看看它是否仍然发生在你​​身上。
  • 不幸的是,我想我现在不能改变,因为我有一台专业电脑……你不知道吗?无法弄清楚如何将这些文件“包含”到服务器,我想我不应该这样做,因为它们是项目的一部分。
  • 我什至没有安装这个版本了。 :) 它不是鼓励使用的版本...让我看看...

标签: dojo ibm-mobilefirst


【解决方案1】:
  1. 我使用 Worklight Studio 5.0.5.1 向导创建了一个项目和应用程序,其中包括 Dojo 并添加了 iPad 环境。

  2. 接下来,查看 Dojo Palette,我看到了一个滑块小部件。我将它拖到我的 HTML 中:

  3. Run As > Build All and Deploy 并在 MBS 中预览环境会显示滑块:

我在这台机器上没有 Xcode,所以这是我现在能做的最好的。
您确定没有看到 slider 小部件吗?

【讨论】:

【解决方案2】:

如果您正在寻找 dijit 表单水平滑块,您可以右键单击调色板的内容并单击 Customize... 在自定义调色板对话框中,选择 Dojo Form Widgets 类别,然后取消选中 Hide。当您展开Dojo Form Widgets 时,您可以选择Horizontal Slider 并取消选中Hide。点击OK,这些项目应该会出现在调色板中。

但是对于移动页面上的滑块,Idan 建议使用 Dojo Mobile Slider 可能比 dijit 滑块更好。

【讨论】:

  • 感谢您的回答,但 dijit 更符合我的需求:/ 有没有机会使用它?
  • 我做到了,但仍然出现 404 错误,这是一张图片,可能更清楚link
  • 找到this关于我的问题,但无法弄清楚如何解决这个问题,因为示例在 Worklight 6.1 中
  • 在您发布的链接中,您在哪里看到 6.1?
  • 我点击了上一篇文章中的链接,该链接指向Worklight Doc。然后,如果您选择登录表单和验证器,您将被重定向到图表小部件的示例,但此示例在 WL 6.1 中。但是我在页面右侧的菜单中找到了WL 5.0.5的示例,但与主题无关。
【解决方案3】:

为了提高构建性能,带有 Dojo 的应用程序使用 build-dojo.xml 文件指定要包含在构建中的文件。默认情况下,它针对移动开发进行了优化。如果您想包含 Horizo​​ntalSlider,最简单的方法是取消注释 <include name="dojo/dijit-layer.js.compressed.js"/>,但在注释掉之后保留 <include> 元素。这将为您提供“dojo/dojo.js.compressed.js”、“dojo/core-web-layer.js.compressed.js”和“dojo/dijit-layer.js.compressed.js”的模式集。

如果您使用 Palette 拖放 Horizo​​ntalSlider,它应该在应用程序的标记中添加了对 dijit.css 和 claro.css 的引用。因此,需要将这些资源添加到您的应用程序中以设置小部件的样式。您可以通过将 dijit/themes/claro/ 目录和 dijit/themes/dijit.css 文件复制到您的应用程序来手动执行此操作。但正如我们所见,build-dojo.xml 文件会自动将这些内容添加到构建中。在您的 build-dojo.xml 文件中,找到模式集 dojo.resources.loose-modules。并添加以下内容:

<include name="dijit/themes/claro/**"/>
<include name="dijit/themes/dijit.css"/>

保存build-dojo.xml 文件。

现在您需要更新应用程序的 JS 文件。在 wlCommonInit 中,需要层文件。有一个数组包含移动开发所需的内容。您将需要向数组中添加另一个层:“dojo/dijit-layer”。所以它应该看起来像:

require([ "dojo/core-web-layer", "dojo/mobile-ui-layer", "dojo/mobile-compat-layer", "dojo/dijit-layer" ], dojoInit);

保存您的应用程序的 JS 文件并像往常一样预览您的应用程序。这应该可以解决 404 问题并呈现 Horizo​​ntalSlider 小部件。

【讨论】:

  • 非常感谢您的回答。当我删除了我导入页面的滑块时,仍然有这个问题,我会试试你的想法。我将把 Sliders 重新导入我的页面。这可能是由错误的导入引起的。我会告诉你的
  • 清理了项目,从 HTML 页面中删除了我的滑块 + header 中的两个导入 &lt;link rel="stylesheet" type="text/css" href="dijit/themes/dijit.css"&gt; &lt;link rel="stylesheet" type="text/css" href="dijit/themes/claro/claro.css"&gt;,并删除了两个 includes道场 XML 文件。仍然有错误
  • 实际上,我添加的每个不属于默认加载的小部件的小部件都会导致使用 404 代码触发错误。我错过了什么 ?除了将小部件拖放到我的 HTML 页面中之外,我认为我不应该做任何事情。
  • 糟糕,我忘记了一步。在应用程序的 JS 文件中,您会在 wlCommonInit 中看到一个 require。除了 build-dojo.xml 中的更改之外,您还需要在数组末尾添加另一个模块:“dojo/dijit-layer”。我已编辑答案以包含此步骤。
  • 我很确定我必须进行这种导入,但我自己尝试使用dojoInit() 方法而不是wlCommonInit()。无论如何,非常感谢,因为我在 Chromium 模拟器中不再有 404 错误,并且滑块是我在 Worklight 模拟器 中需要的那个,但它仍然没有显示在 Chromium 模拟器(即使他的 div 可以在控制台的 Elements 选项卡中看到)可能与此错误有关吗? core-web-layer.js:55 dojo/parser::parse() error message: Unable to resolve constructor for: dojox.mobile.FixedSplitter想法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
相关资源
最近更新 更多