- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
任何人都可以向我解释为什么当 drawSection
被称为“this”时,值会变成全局范围吗?。
有没有在这里使用 require 而不必在我丢失它之前将小部件保存在另一个变量中的方法?
define("my/TextBox", [
"dojo/_base/declare",
"dijit/form/ValidationTextBox"
], function(
declare, ValidationTextBox
) {
function drawSection() {
alert(this);
require(["dojo/dom-construct"], function(domConstruct) {
alert(this); // this = window
});
};
return declare([ValidationTextBox], {
postCreate: function() {
this.inherited(arguments);
drawSection.call(this)
}
});
});
最佳答案
使用dojo/_base/lang
hitch()
函数即可解决问题。
因为 require(["dojo/dom-construct"], function(domConstruct) {....})
中的函数引用了全局上下文,
所以在当前上下文中使用lang.hitch
函数(通过使用this
),问题就解决了
这是一个Fiddle
及以上工作片段:
define("my/TextBox", [
"dojo/_base/lang",
"dojo/_base/declare",
"dijit/form/ValidationTextBox"
], function(lang,
declare, ValidationTextBox
) {
function drawSection() {
alert(this);
require(["dojo/dom-construct"], lang.hitch(this,function(domConstruct) {
alert(this); // this = window
}));
};
return declare([ValidationTextBox], {
postCreate: function() {
this.inherited(arguments);
drawSection.call(this)
}
});
});
require([
"dojo/parser",
"my/TextBox",
"dojo/domReady!"
], function(
parser,
TextBox
) {
// important: parse document after the ValidationTextBox was extended
parser.parse();
});
<link href="https://ajax.googleapis.com/ajax/libs/dojo/1.8/dijit/themes/claro/claro.css" rel="stylesheet"/>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<body class="claro">
<input type="text" data-dojo-type="my/TextBox" />,
</body>
关于javascript - 道场要求和范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42393681/
我正在使用 dojo 版本 1.9.1 并尝试从它们所在的其他域访问我创建的小部件。我得到了 "No 'Access-Control-Allow-Origin' header is present o
不久前,我研究了在使用 Dojo 和 Dojo 主题时出现“无样式内容闪烁”的解决方案。有人建议通过创建构建来组合所有内容,这将减少加载/解析时间并消除使用预加载器覆盖等的需要。 然而,Dojo 的许
我有一个表单,其中使用声明性语法来实例化小部件。 require(["dojo/parser", "dijit/form/Form", "dijit/form/Button",
我有一个搜索功能,大约需要 10 秒才能运行完数据库。有没有办法在dojo中显示搜索状态,以便用户知道搜索实际上正在执行? 澄清 在显示结果的窗口中寻找显示带有百分比的进度条、旋转的圆圈或只是简单的搜
我使用道场。 dojo.ready(function () var input = dojo.query(".dojo_input"); //i have about 5 elements
有没有办法观察鼠标单击事件并确定单击了哪个小部件? 所以基本上我希望我能做这样的事情(鼠标单击页面上的任意位置) on("click", function (e) { //var aWidget
我创建了这个 NumberSpinner 小部件: 当我加载页面时,小部件按预期显示。但是,有几个问题: 该值为空,而不是 2010。 当我按下空小部件上的减少按钮时,我得到 90000000000
我如何着手克隆一个 Dojo 表单 (dijit.form.Form) 及其子窗口小部件?理想情况下,我也想更改克隆小部件的 ID。我也有兴趣克隆可能附加到小部件的任何事件。 我玩了一下 dojo.c
我有一个使用 dojo 1.5 的表单设置。我正在使用 dijit.form.ComboBox 和 dijit.form.TextBox Combobox 有像“car”、“bike”、“motorc
var testObj = this.getView(); 在我实际尝试调用 callableFunction() 之前,如果 testObj 具有 callableFunction 并且如果不存在则
我最近开始使用 Dojo 框架,并且必须为网站制作 float Pane 。在谷歌和 stackoverflow 上搜索后,我发现了一个很好的例子: jsfiddle 但问题是,每次我最小化 floa
我正在使用一些自定义的 Dojo 小部件,但一直感觉我是众所周知的柔术 Actor ,通过在他们的头上伸手两次来抓耳。由于某种原因,我对 dojo.hitch() 的使用感觉不正确。 这是有效的: m
是否可以使用dojo工具包的dnd api更改头像的位置?此时,拖动时,被拖动项目的头像出现在鼠标光标的右侧和下方。我希望它与鼠标光标位于同一位置。我对我的应用程序进行了一些可用性测试,大多数人似乎尝
我无法让 ValidationTextBox 失去焦点,我也看不到 blur() 方法。 如何让它失去焦点? 最佳答案 blur() 方法适用于 dom 节点。小部件通常由 html 模板支持。如果您
我正在处理一个使用 dojo datagrid 和 JsonRestStore 的旧代码库,使用声明性方法(在 HTML 中)。我现在正在尝试对其进行调整以使用更新的 dojo.store.JsonR
我正在编写一个使用 dojo Toolkit 的 JavaScript 应用程序。我在 dojo 文件夹中创建了一个名为“md”(我的 Dojo)的文件夹。 myownclass.js 和 myCom
我是 Dojo 的新手,所以我需要一些帮助。 我的一些链接需要一段时间(当用户点击时,页面开始加载需要几秒钟),我想添加一个“正在加载”消息。 我可以用“老式方式”来做,但我想学习新的、更简单、更智能
我有一个使用 Python Django 和 Dojo 框架的网络应用程序。我想从 Dojo(使用 dojo/request)向服务器 Django 发送 PUT 请求,但是当服务器收到请求时,其中的
Please ref : http://jsfiddle.net/n23F3/ 我想知道如何在 Accordion 标题(红色标签)上实现打开和关闭。 现在第一个选项卡仅在单击第二个选项卡后关闭。我想
我不确定这是我以前从未遇到过的一些 css 问题,还是在 dojo 1.5 中使用新的 claro 主题时出现的问题。但是现在,CSS 所说的 100% 大小不包括我的 BorderContainer
我是一名优秀的程序员,十分优秀!