Dojo访问外部文件中的javascript对象

时间:2016-08-26 16:21:59

标签: javascript dojo

我正在尝试访问我在外部文件中定义的简单javascript变量/对象。我的问题是如何通过dojo加载它。这是我的plunker code无效的工作:

的index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Tutorial: Hello Dojo!</title>
</head>
<body>
    <!-- load Dojo -->
    <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"
            data-dojo-config="async: true"></script>
    <script type="text/javascript">
        require({
        packages: [
        {
                name: 'myApp',
                location: window.location.href.replace(/\/$/, "")
        }]}, 
        ["dojo/dom", "myApp/config", "dojo/domReady!"], function(dom, config) {
          console.log(config.keys);
        });
    </script>
</body>
</html>

config.js

var keys = {
    "key_1": {
        "your_name": "jimmy",
        "your_msg": "hello world"
    },
    "key_2": {
        "your_name": "billy",
        "your_msg": "foo equals bar"
    }
};

正如您所看到的,我尝试将config.js文件作为配置加载,并尝试在我的代码中以配置方式访问它。我在控制台中未定义。

2 个答案:

答案 0 :(得分:1)

我做了一些研究,我需要使用的东西看起来像dojo的define函数,所以config.js看起来像这样:

define({
  keys : {
    "key_1": {
        "your_name": "jimmy",
        "your_msg": "hello world"
    },
    "key_2": {
        "your_name": "billy",
        "your_msg": "foo equals bar"
    }
}
})

答案 1 :(得分:0)

您应该为配置文件定义一个模块。 这可以使用define作为参数传递来实现。

基本示例:

define({ yourProperty: yourValue});

可在此处找到更多信息:https://dojotoolkit.org/documentation/tutorials/1.10/modules/