- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在编写一些代码,以编程方式创建一个我需要放置到布局小部件中的小部件。我目前遇到的问题是 startup
被 dojo 主动调用。
如果布局小部件已经启动,则在使用placeAt(domNode)
时调用startup
。这是不可取的,最好必须显式调用 startup
。
我这样说是因为在当前情况下,startup
被调用了两次,一次是在调用 placeAt
时,一次是在调用 startup
时之后由我手动调用。
Dojo docs和 related tutorials说当以编程方式创建小部件时,您应该始终手动调用 startup
以确保发生正确的解析。但是 startup
的自动调用导致了一些问题,启动时出现重复操作,我可以将它们移到 postCreate
中,但这只是隐藏了问题。
这是小部件创建/启动的简单示例...
var myWidget = new Widget();
myWidget.placeAt('mainContent');
myWidget.startup();
mainContent
是 ContentPane 中的一个 div,这里是布局 html...
<body class="claro">
<div id="appLayout" data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="design: 'headline'">
<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'center'">
<div id="mainContent"></div>
</div>
<div class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'top'">Some text here</div>
<div id="leftCol" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'left'"></div>
</div>
</body>
代码有效,这确实是我试图解决的 startup
被调用两次的问题。
更新:解决方法
建议在 startup
函数内针对小部件私有(private)变量 _started
进行检查,至少可以保护我免受重复,这是我的检查示例。
startup: function(){
if (typeof this._started === "undefined"){
// call inherited and pass on arguments
this.inherited(arguments);
// then do what ever you need here
}
}
注意我必须使用 typeof
而不是 boolean
检查,即使在 startup
之后 _started
为 true
。这是因为我发现该变量在 startup
至少运行一次之前实际上并未声明,这是需要注意的事情。
无论如何,这为我提供了一个解决方法,但没有解决 startup
被 dojo 多次调用的问题。
最佳答案
startup()
在 Dojo 中经常被自动调用。例如,每当您在容器小部件上调用 addChild()
时,都会调用子项的 startup()
方法。查看_WidgetBase
的源代码,placeAt
也是其中一个实例。
当您使用类似dom-construct
的东西将dojo 小部件直接放置在DOM 节点上时,您应该手动调用startup()
。
如果你想检查一个小部件是否已经启动,你可以检查小部件内的 _started
属性。这是在 startup()
方法中设置的。
关于javascript - 道场 1.9 : placeAt automatically calls startup when parent widget has started up,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19054821/
安装 Windows 服务时,有两个选项可用于在 Windows 启动时自动启动 Windows 服务。一种是自动,另一种是自动(延迟启动)。这两者具体有什么区别? 例如,如果您使用 wixtools
使用Xcode 4.2,如何启用/禁用“自动引用计数”? ANSWERED 在“构 build 置”下,根据是否要启用ARC翻转"is"和“否”。 最佳答案 全局范围内: 转到“构 build 置”,
在学习 PHP 中 Cookie 的概念时,我从 w3schools PHP Tutorial 中看到以下语句: The value of the cookie is automatically UR
在学习 PHP 中 Cookie 的概念时,我从 w3schools PHP Tutorial 中看到以下语句: The value of the cookie is automatically UR
我曾经有自动代码签名身份:iPhone Developer 在真实设备上进行测试(它与我的“开发”证书匹配)。 很快在我的目标设置中,我无法选择“iPhone 开发者”,而且我没有看到任何开发者证书,
当我编译这段代码时: class DecoratedString { private: std::string m_String; public: // ... constructs
我在 Kathy Sierra 的书中读到过: “局部变量有时称为堆栈、临时、自动或方法变量,但无论您使用什么,这些变量的规则都是相同的调用他们。” 为什么局部变量叫automatic? 最佳答案 当
复制代码 代码如下: Const OWN_PROCESS = &H10 Const ERR_CONTROL = &H2 Const INTERACTIVE = False
我有以下问题: 我需要在条形图中从最高到最低排序我的值: 我知道我可以使用数据透视表和数据透视图,但将来可能会有点复杂。 最佳答案 我建议通过使用帮助列来根据需要对数据进行排序来实现这一点。 C 列:
我本质上想创建一个每次都会执行的变量。举个最简单的例子: $myvar = `write-host foo`; 然后每次我引用 $myvar 时,它都会输出 foo: dir $myvar Direc
有人知道有一个实用程序可以自动检测并删除 uses 子句中不需要的单元吗? 最好是.. 可以针对一个单元和/或一个项目运行 免费且可与 Delphi 2010 配合使用 提前致谢。 最佳答案 尝试使用
在大多数情况下,当您阅读here时,IBOutlet应该很弱。 现在,您可以在development library中阅读,并非所有类都支持弱引用。 (例如NSTextView)。这意味着您必须使用a
只是一个简单的问题(我想)但是,假设我有以下数据文件: # no x data, it's sampled for instance each second. 23 42 48 49 89 33 39
我在以前工作的应用程序上用 RC 更新了 ASP.NET 5 框架 beta-8 包。在我让它运行后,启动过程中出现下一个错误: InvalidOperationException: No authe
我编写了一个Powershell脚本,该脚本应将服务设置为StatusType ='Automatic'。但是,当我运行脚本时,它实际上设置了StatusType ='Automatic(Delaye
我想知道 WPF 中是否有一种自动控制大小调整的功能。 我的意思是,一种根据用户屏幕分辨率自动调整元素大小的方法,而无需在代码中定义它。 谢谢。 最佳答案 首先,WPF 使用与设备无关的像素,这意味着
我正在从 bat 文件或 Python 文件调用外部程序 (fxTsUtf8.exe)。我浏览了数百个 sos 文件。在某些情况下,exe 文件可能会由于读取 sos 文件中的错误而失败。要继续执行
我想知道正在创建的这个线程(引用代码片段)是否会在完成其工作后在垃圾收集中自动终止。 我正在创建一个基本的聊天程序,以学习如何使用套接字、创建客户端和创建服务器。我很快发现,如果我希望能够从客户端发送
我目前正在修复一个 JSP 项目,它目前在 Tomcat 的 WEB-INF 文件夹中有一个看似随机的 .class 文件集合。作为简化这一点的一种方法,我计划从这些类中直接从 SVN 获取 .jav
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及
我是一名优秀的程序员,十分优秀!