0

我正在尝试使用 dijit.Fieldset 但它不起作用。在我需要的数组中,我包含了“dijit/Fieldset”,并且在函数定义中,我将它映射到了 Fieldset。我包含的其他内容,例如“dijit/form/Button”和“dojo/on”都运行良好。但是,当我尝试用这个创建一个 Fieldset 时:

var temp = new Fieldset({ title: "Locations", content: "Blah" });

我收到消息:

对象不支持此操作。

我进入 dubug 模式,可以看到 Fieldset 的值只是一个 int 值 3(我真的不明白)。如果我尝试使用 dijit.Fieldset 访问,我会得到同样的错误。然后,当我调试并将鼠标悬停在 Fieldset 上时,我得到未定义的值。dijit 已定义,并为我提供了鼠标悬停时的期望。所以,我似乎没有加载 dijit.Fieldset。任何人都可以建议吗?我用的是1.9。

谢谢

更新

感谢你们到目前为止的帮助。我承认我省略了完整的代码,因为它有点啰嗦,不想让人们拒绝回答!这是代码 - 另一个坦白,我不确定这是否被称为道场命名法中的类或模块。

define([
"dojo/_base/declare",
"dojo/_base/lang",
"dojo/dom-construct",
"dojo/on",
"dojo/html",
"dijit/registry",
"dijit/Fieldset",
"dijit/Tooltip",
"dijit/TooltipDialog",
"dijit/form/DropDownButton", 
"dgrid/OnDemandGrid",
"dgrid/Selection",
"dgrid/Keyboard",
"dgrid/extensions/DijitRegistry",
"esri/map",
"esri/tasks/route",
"esri/toolbars/edit",
"dijit/Menu",
"dijit/MenuItem",
"dijit/form/Button",
"my/app/RouteSymbols"
], function (declare, lang, domConstruct, on, html, registry, Fieldset, Tooltip) {
    return declare("my.app.RouteUtils", null, {

}

我还认为它看起来像是定义中的错误。奇怪的是,任一站点所需的模块(dijit/registry 和 dijit/Tooltip)都已正确加载并在页面上正常工作。

关于版本,我使用的是 IE9。

再次,谢谢。西蒙

4

1 回答 1

0

如果模块的值是字面值3,那是因为 1. 您使用的是工具包的构建版本,以及 2. 加载器已将模块识别为不是 AMD 模块,即它从未调用过该define函数即使脚本本身已加载。

至于为什么会发生这种情况dijit/Fieldset,没有确切地看到你在做什么或你正在使用什么浏览器(错误消息说 IE,但不可能知道什么版本),这是不可能的。

于 2013-09-02T02:18:00.753 回答