问题标签 [dojo-1.9]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
8592 浏览

dojo - Dojo 1.9 在加载语言环境时构建“multipleDefine”错误

我的 dojo 应用程序在构建后中断,在加载应用程序期间,抛出“multipleDefine”并给出此错误:

错误{src:“dojoLoader”,信息:对象}

消息:多重定义

信息:对象{pid:“dojo”,mid:“dojo/nls/dojo_en-us”,pack:对象,url:“dojo/nls/dojo_en-us.js”,执行:5…}

这是我的个人资料:

}

这是 src/ 中的 index.html

注意:build.sh负责在部署到生产环境时删除“isDebug”标志。如果您完全修改此标志,您将破坏构建!

这是在 dist/ 中生成的 index.html

我检查以确保 dojo/nls/dojo_en-us.js 存在并且没问题。我被困在这一点上,没有任何线索!

任何解决此问题的帮助表示赞赏。

0 投票
1 回答
969 浏览

dojo - 错误:应用dojo构建后defineAlreadyDefined

我按照http://www.sitepen.com/blog/2012/06/11/dgrid-and-dojo-nano-build/的说明创建了自己的构建配置文件。我为 dojo 创建了引导层:

我还注意到,如果我跳过这一层的定义,则会创建更大的 dojo 包,因此第二层中包含的模块会被复制。

第二层包含 GridX 模块、dijit 控件和 Dojo 中使用的所有其他内容:

应用程序正确启动,它只向分层资源发出请求,但是在 FireBug 控制台中出现错误:

错误:defineAlreadyDefined makeError() dojo-all.js (Zeile 28)

我认为这是因为该declare模块被加载了两次:首先是使用从 HTML 文件定义的 dojo.js 引导程序。其次,从 dojo-all.js 层,通过 require 动态加载。

基于引用的文章,我的方法中必须有一些流程,或者该文章已适应旧版本的 Dojo(我使用的是 1.9 版本)。

这里有什么错误?应该如何正确定义图层?如何指示 dojo build 不要覆盖 dojo.js 引导程序?或者排除没有正确声明 - 如果是这样,应该如何声明?

0 投票
1 回答
970 浏览

javascript - 从 HTML 标头加载层时,Dojo 构建在 IE9 上失败:属性 'dir' 未定义

我已经制作了一个 dojo 构建,但我希望在启用/禁用构建时具有灵活性,所以我尝试<script>在 HTML 标头中加载标签:

我没有修改我的 JS 文件。它似乎起作用,但是,有一个问题,但仅限于 IE9,并且仅限于部署在 WebSphere 上的应用程序版本(我已经在 Apache2 上测试过)。问题是,在那个特定的代码片段中,属性“dir”是未定义的:

在搜索了一些类似的问题后(​​例如:How to prevent "Unable to get value of the property 'dir': object is null or undefined" error when loading pages in IE9),我检测到它可能是一些加载顺序问题。我已经从 HTML 标头中删除了该层,并按以下顺序将其加载到我的 JS 中:

但是,我知道人们正在 HTML 标头中加载构建,例如从这里的主题:Dojo Builds...?现在怎么办?

所以我的问题是,我是不是做错了什么,或者 HTML 标头的技巧不能保证在所有浏览器上都有效?

这是我的构建脚本配置:

这是dojo的build.bat:

0 投票
1 回答
256 浏览

javascript - 如何根据dojo中的单选按钮动态更改组合框的searchAttr?

我正在尝试searchAttr根据单选按钮更改组合框的值。这是我到目前为止的工作片段。

这是我要完成的伪代码

0 投票
1 回答
2676 浏览

javascript - 如何“取消设置” Dojo datetextbox 默认值?

我有一个 JS 覆盖层,它将我的网络应用程序上的数据输入控件设置为 dojo 小部件。我抓取像 <input type="text" class="date" /> 这样的输入并将它们变成DateTextBox小部件。

这是我的基本代码:

我的问题是,如果没有提供任何值,所有 DateTextBox 最终都设置为“1970-00-01”作为初始日期。如果没有提供任何值,我希望将它们设置为 null 或 undef,但这在启动之前似乎是不可能的。

有没有办法在我打电话之前设置它widget.startup()

0 投票
3 回答
3798 浏览

validation - 如何使用 dijit/Textarea 验证(Dojo 1.9)?

我有 textarea 这是必填字段。我发现帖子暗示 Dojo 没有对 Textarea 的验证,但在 Dojo 1.9 中,有一个参数“必需”。

我做了以下事情:

但效果出乎我的意料。texarea 总是有红色边框,即使该字段没有被聚焦(例如,与 ValidationTextBox 相反)。但是当我打电话时:

即使 texarea 为空,验证也会通过。

是否有可能让 Textare 的行为与 ValidationTextBox 中的相同,或者就目前而言,该组件的验证尚未准备好,我必须编写自定义版本(如链接的帖子中)或等待下一个 Dojo?

0 投票
2 回答
186 浏览

javascript - Dojo 声明 - 默认属性的范围(实例或静态)

我花了很多时间调试组件中的策略错误。该组件具有禁用/启用按钮,但我还没有看到效果。过了一会儿,我注意到,按钮在我创建的最后一个组件实例中发生了变化。声明看起来是这样的:

在调试中,我已经看到,当我创建对象的第二个实例时:

按钮已设置 - 它们的实例由所有实例共享!

最后,我在我的组件中创建了一个静态变量。这不是我想要的!该声明有什么问题?我应该如何为每个组件实例分别制作“按钮”实例?

0 投票
1 回答
487 浏览

javascript - Dojo dijit 创建的最佳实践是什么?

Dojo dijit 创建的最佳实践是什么?

  1. 纯粹的声明性方法 (D)
  2. 纯粹的程序化方法 (P)
  3. 两者的结合(D&P)

标准

  1. 最容易维护
  2. 开发速度最快
  3. 最直观
  4. 最棒的表演
  5. 大多数功能和灵活性

语境

我使用 Dojo 还不到一个月,最近我开始使用 dijit 库。dijit 广为人知的方面之一是它们可以以编程方式或声明方式声明。我总是喜欢在了解最佳实践的情况下使用一组新工具,并大致了解哪种方法对特定应用程序具有哪些优势/优势。

下面的信息来自对这两种风格的一些个人经验,以及我能找到的参考资料,这并不是很多。此链接是我在有关该主题的官方 Dojo 文档中找到的唯一链接,并且这篇文章提供了一些外部视角,并基本介绍了每个链接的代码如何寻找简单的场景。这两个链接都适用于旧版本的 dojo,在 1.7 版中引入 AMD 之前。

程序化

  1. 将 Dojo 与 HTML 分离,从而保持 HTML 的语义纯度
  2. 将事件处理程序和小部件放在同一个地方,提高可读性
  3. 似乎更容易动态地为属性分配值(例如,使用函数创建唯一 ID)

声明式

  1. 快速开发——直观、隐含的嵌套、像普通 HTML 元素一样定义的小部件
  2. 通过使用 data-jojo-* 属性实现有效的 HTML5
  3. 不保留 HTML 的语义纯度
  4. 事件处理程序来自外部脚本,造成了一些复杂性并降低了可读性
  5. 初始 parseOnLoad 可能会减慢前期小部件设置

关于回复的说明: 请在您的回复中说明每个标准。随意提出您认为重要的任何其他标准。我绝不是评估最佳实践的专家。


更新

在浏览了更多关于这方面的信息后,我发现了另一篇具有类似想法的帖子,它提供了一些有用的背景信息,说明这些风格差异的含义。

0 投票
1 回答
55 浏览

javascript - 在嵌套的 BorderContainer ContentPane 小部件中未检测到区域属性

我正在使用 Dojo 1.9 创建一个基本的待办事项列表应用程序。我有一个我希望单个任务看起来像的简单模型,可以在这个jsfiddle中看到。我试图在我的待办事项列表中,在这个 jsfiddle 的 addTask 函数中实现这个

本质上,我有以下布局:

并且任务(task0、task1、...)的 BorderContainer 小部件未正确格式化其子 ContentPane 小部件——在 Firebug 中的检查显示 dijitAlign* 属性未设置。为什么是这样?我在完成时调用启动,并且对 DOM 的检查清楚地表明所有子项都被适当地嵌套。

0 投票
0 回答
235 浏览

dojo - dojo 1.9.1 中的这个 dgrid 代码有什么问题?

所以,这是我的代码:

这段代码有什么问题?以前,我安装了 1.7,带有一个旧的 dgrid。我刚刚更新了所有内容。现在什么坏了?我什么都看不见...

我也有一些声明性的 dojo 代码: