如何使用带有rails 3.1资产管道和coffeescript的dojo工具包?

我正在尝试使用dojo-toolkit作为rails 3.1 app上的JS框架,但我正在努力将dojo require结构与sprockets require和coffeescript合并.似乎dojo期望磁盘上的JS文件,但我猜它们是从coffeescript动态创建的.

想知道是否有人知道这两个要求是如何共存的.

解决方法

我最近不得不使用rails 3.1和资产管道安装dojo.以下是我遵循的步骤:

1 /包括道场

将dojo SDK放在vendor / assets / javascripts下,这样就可以获得dojo,dijit和dojox文件夹.将其包含在您的模板中:

= javascript_include_tag "dojo/dojo",:'data-dojo-config' => %Q(baseUrl: '/assets/dojo/',modulePaths: {modules: '/assets/modules',widgets: '/assets/widgets'})

不要忘记资产上的领先’/’!

你可以使用Google CDN with a fallback

script var djConfig = { baseUrl: '/assets/dojo/',widgets: 'widgets'} };
= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js"
script ="typeof(dojo) === \"undefined\" && document.write(unescape('%3Cscript src=\"#{asset_path('dojo/dojo')}\"%3E%3C/script%3E'));".html_safe

第一行设置了您的djConfig.第二行实际上需要来自Google的dojo.第三是后备.

2 /包括您的基本文件

删除app / assets / javascripts / application.js中的所有“require”并放置类似的东西(例如):

dojo.provide("myapp");

3 /与dojo.require一起玩

在1 /的djConfig中,我设置了modulePaths,将它们自定义为你想要的.在我的例子中,你可以将这两个放在你的文件中:

> app / assets / javascripts / modules /
> app / assets / javascripts / widgets /

如果我想要模块/ test.js,我只是这样做:

dojo.require("modules.test");

4 /使用coffeescript和ERB

只需添加正确的扩展名并启动右侧erb,如Rails documentation中所述.

我希望它对你有所帮助!

相关文章

我有一个网格,可以根据更大的树结构编辑小块数据.为了更容易...
我即将开始开发一款教育性的视频游戏.我已经决定以一种我可以...
我正在使用带有Grails2.3.9的Dojo1.9.DojoNumberTextBox小部...
1.引言鉴于个人需求的转变,本系列将记录自学arcgisapiforja...
我正在阅读使用dojo’sdeclare进行类创建的语法.描述令人困惑...
我的团队由更多的java人员和JavaScript经验丰富组成.我知道这...