难以将xstyle加载为dojo依赖项

时间:2016-07-20 22:37:20

标签: javascript dojo amd

我正在尝试使用Dojo创建一个简单的自定义小部件,并希望使用xstyle加载CSS。看the reference in github,它说我可以添加

<script src="dojo/dojo.js" data-dojo-config="async: true, deps:['xstyle/main']"></script>

完成。问题是我需要在我的dojo模块下使用xstyle,而且我不确定在哪里获取/安装它?

总之,我有这个:

<script type="text/javascript">
        var dojoConfig = {
                async: true,
                parseOnLoad: true,
                packages: [
                    {
                        name: "app",
                        location: location.pathname.replace(/\/[^/]+$/, "") + "/app"
                    }
                ],
                deps: ['xstyle/main']
            };
</script>
<script type="text/javascript" src="app/js/dojo/dojo.js"></script>

我收到错误Cannot find .../app/js/xstyle/main.js,这是有道理的,因为我没有它,我不知道从哪里得到它。

我从网站上下载了dojo安装,其中包括dojo,dijit,dojox和&amp;主题。 CDN似乎也没有xstyle。我也试过kriszyp的另一种方法:

<script src="xstyle/xstyle.js"></script> <!-- or use the minified xstyle.min.js -->

无济于事。我相信如果我在dojo声明之前或之后添加错误,我会收到一些already definednot defined错误。

如果你能指出我正确的方向,请告诉我。

1 个答案:

答案 0 :(得分:1)

所以在更多地研究这个问题之后,我找到了this博文,其中使用了bower来安装xstyle。用bower(bower install xstyle)安装后,我能够链接到dojo配置中的xstyle包:

var dojoConfig = {
    async: true,
    parseOnLoad: true,
    packages: [
        {
            name: "app",
            location: location.pathname.replace(/\/[^/]+$/, "") + "/app"
        },
        {
            name: "xstyle",
            location: location.pathname.replace(/\/[^/]+$/, "") + "/app/bower_components/xstyle"
        },
   ]
};

这很有效,我可以使用'xstyle/css!./css/checkboxTree.css'成功地将CSS加载到我的窗口小部件中。我不确定这是否是最好的方法,但它确实有效。