我们可以在html页面中引用dojo脚本后使用dojo工具包。
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.9.2/dojo/dojo.js"></script>
<script type="text/javascript">
require(["dojo/dom"], function (dom) {
var button = dom.getById("ok");
});
</script>
我们可以在脚本中使用“dojo / dom”。
我想在我的服务器中创建自己的javascript模块并在每个地方使用它。
例如,我有一个域http://mydomain.com/api/v1/app.js
我应该像这样使用 app.js 。
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.9.2/dojo/dojo.js"></script>
<script src="//mydomain.com/api/v1/app.js"></script>
<script type="text/javascript">
require(["dojo/dom","app/something"], function (dom,something) {
var st = new something();
});
</script>
我创建了 app.js 这样的文件,但没有用。
declare(["dojo/_base/declare"],
function (declare) {
return declare(null, {
constructor: function () {
console.log("hello");
}
});
})
我应该如何创建app.js文件?
答案 0 :(得分:1)
这里有很多问题。第一个(和真正的问题)是Dojo将相对于您的模块。这意味着它将在CDN的某个位置显示您的应用模块(显然无法找到)。
要更改包的位置,您必须配置Dojo config的包部分。在你的情况下:
<script type="text/javascript">
dojoConfig = {
packages: [{
name: 'custom',
location: 'http://mydomain.com/api/v1/'
}]
}
</script>
然后您可以使用以下方式获取模块:
require(["custom/app"], function(app) {
// Do something
});
重要:确保在Dojo加载程序(dojo.js
)之前加载了Dojo配置。因此,您必须将此<script>
- 标记放在dojo.js
脚本标记上方才能使其正常工作。
另一个问题是,在app.js
中,您必须使用define()
作为第一个语句,不是 declare()
。例如:
define(["dojo/_base/declare"],
function (declare) {
return declare(null, {
constructor: function () {
console.log("hello");
}
});
})