我想我需要在一个页面中支持多个 require 实例,但在实现它时遇到了两个问题。我正在开发一项服务,该服务向外部客户端页面提供可嵌入的交互式对象。最重要的设计标准是易于嵌入,尽可能少地假设客户端环境,并在客户端页面的 js/css 世界中很好地发挥作用。客户端在他们的页面上添加一个脚本标签来加载加载器,然后他们使用一个内联脚本来加载他们想要的内容:
<script src="http://server.net/loader"></script>
<script>
special_require(["loader"], function(loader) {
loader.load({
object: "objectname",
target: "#where-i-want-it"
// other config settings
})
})
</script>
加载器在匿名函数中运行 require.js 源代码,对其进行配置,然后将 require 和 define 导出为命名空间全局变量(我们称它们为 special_require 和 special_define)。然后special_defined几个模块,以“loader”结束:
// Using strategy 2 from http://requirejs.org/docs/faq-advanced.html#rename to
// namespace require so it doesn't conflict with code on client sites.
;(function() {
// Here, we use Jinja to drop in require.js, which will define itself in
// this non-global namespace.
{% include 'loader/require.js' %}
require.config({
...
})
window.special_require = require
window.special_define = define
})()
special_define("loader", [...], function(...) { ... })
在大多数情况下,这非常有效。我能够将我的要求与客户端页面中进行的任何要求完全分开,并且我轻踩客户端的 js 全局命名空间。但是:
如果客户端页面恰好正在加载 require 并使用 data-main 属性调用它,我的 require 会出现并尝试根据我的 baseUrl 加载他们的 data-main 脚本,我们会收到加载错误。我可以修改我的 require 的来源,以便它停止寻找 data-main 属性。有没有更清洁的解决方案?
require 社区非常清楚,一个页面上不应有多个 require 实例。 require.js 源代码竭尽全力避免 self 复制。所以我很紧张,因为我走这条路会给自己带来麻烦。也就是说,我更担心可能会使用客户端的 require 实例(使用我自己的加载上下文)。 Require 1.2、2.0 和 2.1 不兼容,我不知道我在使用什么。我是否只是处于一种不寻常的情况下,需要单独运行才有意义?我要惹麻烦了吗?有没有一种方法可以加载 require.js 并允许它在可能的情况下推迟到现有的要求,同时仍然可以保证我有特定版本的要求?
最佳答案
我觉得可以。示例见此处:http://requirejs.org/docs/api.html#multiversion
关于javascript - require (require.js) 的多个实例可以很好地协同工作吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14387092/
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题
我有多个ActiveRecord子类Item的实例数组,我需要根据最早的事件循环打印。在这种情况下,我需要打印付款和维护日期,如下所示:ItemAmaintenancerequiredin5daysItemBpaymentrequiredin6daysItemApaymentrequiredin7daysItemBmaintenancerequiredin8days我目前有两个查询,用于查找maintenance和payment项目(非排他性查询),并输出如下内容:paymentrequiredin...maintenancerequiredin...有什么方法可以改善上述(丑陋的)代
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何
查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html
我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击
在我的应用程序中,我需要能够找到所有数字子字符串,然后扫描每个子字符串,找到第一个匹配范围(例如5到15之间)的子字符串,并将该实例替换为另一个字符串“X”。我的测试字符串s="1foo100bar10gee1"我的初始模式是1个或多个数字的任何字符串,例如,re=Regexp.new(/\d+/)matches=s.scan(re)给出["1","100","10","1"]如果我想用“X”替换第N个匹配项,并且只替换第N个匹配项,我该怎么做?例如,如果我想替换第三个匹配项“10”(匹配项[2]),我不能只说s[matches[2]]="X"因为它做了两次替换“1fooX0barXg
我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby1.9+ 关于ruby-主要:Objectwhenrun
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳