我已經閱讀文檔:dojo/domReady!和道場/準備澄清
https://dojotoolkit.org/reference-guide/1.10/dojo/domReady.html
,也是一個相關的問題:
Dojo timing issue with dijit/registry and dojo/domReady
我依然不確定正確的做法。 與其他用戶一樣,我有一個(很長)單頁網絡應用程序與幾個意見。
我所有的js都需要dojo/domReady!
,但僅僅在加載時不能保證dijit/registry
的正確行爲。 這是我的配置:
script(type="text/javascript").
dojoConfig = {
has: {
"dojo-firebug": false,
"dojo-debug-messages": false,
isDebug: false
},
parseOnLoad: false,
mblHideAddressBar: true,
async: true
};
script(src="/javascripts/dojo/dojo.js")
script(type="text/javascript").
require([
"dojox/mobile/parser",
"dojox/mobile/View",
"dojox/mobile/Button",
"dojox/mobile/TextBox",
"dojox/mobile/RoundRect",
"dojox/mobile/FilteredListMixin",
"dojox/mobile/TextArea",
"dojox/mobile/Switch",
"dojox/mobile/FormLayout",
"dojox/mobile/SimpleDialog",
"dojo/domReady!"
], function (parser) {
parser.parse();
});
然後,對於每個視圖,我有一個js函數像這樣的模板:
#viewLogin(data-dojo-type="dojox/mobile/View" data-dojo-props="selected:true")
...
script(type="text/javascript").
require([
"dojo/dom",
"dojo/on",
"dojo/request/xhr",
"dojo/dom-form",
"dojo/_base/window",
"dijit/registry",
"dojox/mobile/parser",
"dojox/mobile/View",
"dojox/mobile/compat",
"dojox/mobile/Button",
"dojox/mobile/TextBox",
"dojox/mobile/RoundRect",
"dojox/mobile/FormLayout",
"dojox/mobile/SimpleDialog",
"dojo/domReady!"
], function (dom, on, xhr, domForm, win, registry) {
var txt = registry.byId("txtName").set("value", userName);
...
這足以包裝成內部的各個JS腳本一個ready(function(){ });
所有的代碼?
其實這個問題可能有兩種劈裂:
- 可以工作?
- 它是推薦的方式嗎?