我创建了一个道场模块依赖于DojoX中/数据/ JsonRestStore是这样的:
define("my/MyRestStore",
["dojo/_base/declare", "dojox/data/JsonRestStore"],
function(declare, JsonRestStore) {
var x = new JsonRestStore({
target: '/items',
identifier: 'id'
});
...
这是罚款。 但现在我想有JsonRestStore代码的未压缩版本加载,这样我可以调试它。 我无法找到如何做到这一点的任何文档,但是因为有一个叫做“JsonRestStore.js.uncompressed.js”文件我改变了我的代码:
define("my/MyRestStore",
["dojo/_base/declare", "dojox/data/JsonRestStore.js.uncompressed"],
function(declare, JsonRestStore) {
...
想着可能的工作。
我可以看到萤火虫在加载JsonRestStore.js.uncompressed.js文件,但我得到试图做的时候错误new JsonRestStore
:
JsonRestStore is not a constructor
如果这方面的工作?
有没有配置道场使用的所有模块的未压缩版本的方法吗? 这就是我真正想要的,但会满足于做对每个依赖的基础,如果这是唯一的办法。
更新
我已经找到了一种方法可以达到我想要做什么:重命名文件JsonRestStore.js.uncompressed.js到JsonRestStore.js。
然而,这似乎有点像哈克的解决办法,所以我还是会热衷于知道是否有更好的方法(例如,通过配置)。
你有两个选择
1)创建一个自定义生成。 自定义版本将输出可用于调试一个压缩的文件。 想想dojo.js.uncompressed.js,但它包含了所有你使用额外的模块。
要么
2)对于开发环境中,使用道场的源代码。 这意味着下载Dojo Toolkit的SDK和开发环境从引用的dojo.js。
对于我的工作项目,我做两个。 我设置了道场的配置,以便它可以是动态的,我可以改变,我想用一个查询字符串参数,该参数配置。
当我调试的问题,我将使用第一个选项就是为了让我步执行代码,看看到底是怎么回事。 我用的是第二个选项,当我写一些显著js和不希望自定义生成的开销看到我的变化。
我形容这更在位
http://swingingcode.blogspot.com/2012/03/dojo-configurations.html
我认为,这样做的原因是由于加载器所使用的文件约定声明其类负载(模块),这一事实。 1.7装载机是不是太强大的,只是还没有,香港专业教育学院也有类似的问题,直到意识到如何分开“” 和“/”字符。
它只有一个合格的猜测; 但我相信这与解释做“” 字符这标志着作为一个子命名空间,而不是模块名的类名。
该 '限定(/ * BLANK * / [/ * DEPENDENCIES * /],...)' - ,其中没有第一字符串参数中给出 - 得到由文件名(基本名)加载。 返回的声明也有一种说法,虽然。 因此,对于jsonrest你的榜样,其分流/解析为这样的:
toplevel = dojox
mid = data
modulename = JsonRestStore.js.uncompressed
(故障..模块呈现为dojox.data.JsonRestStore.js.uncompressed,不dojox.data.JsonRestStore作为应该)。
所以,三个选项;
- 通过加载uncomressed类
<script src="{{dataUrl}}/dojox/data/JsonRestStore.js.uncompressed.js"></script>
和上dojo.ready解决它们 - 我想修改
define([], function(){})
在uncompressed.js来define("JsonRestStore", [], function() {})
将做的伎俩(uncomfirmed) - 使用Dojo /文装载机,见下文
文本填料需要:)
define("my/MyRestStore",
["dojo/_base/declare", "dojo/text!dojox/data/JsonRestStore.js.uncompressed.js"],
function(declare, JsonRestStore) {
...
JsonRestStore = eval(JsonRestStore);
// not 100% sure 'define' returns reference to actual class,
// if above renders invalid, try access through global reference, such as
// dojox.dat...