几乎在每个Backbone/Require.js项目中,您都会看到类似这样的模型和View:define(['jquery','underscore','backbone'],function($,_,Backbone){//Somecodegoeshere,perhapsaBackbonemodelorview});但是,假设您正确设置了Require.jsshim(使用Backboneshim包括诸如deps:["underscore","jquery"]之类的内容),您只需要定义Backbone--将Backbone定义为依赖项也隐含地将jQuery和Underscore定义为依
背景我有一长串用backbone.js制作的模型和View-但并非所有用户都会打开所有View。我用require.js加载JavaScripts文件和模板。我现在拥有的我有一个知道所有View的路由器。由于路由器知道这一点,因此所有View、模型和模板都会在启动时加载——这也会加载随机访问的View。问题如何在需要时使用require.js加载JavaScript?不是在初始启动时,而是在用户首次打开View时。更新我现在可以按照下面的回答中的评论进行这项工作。在路由器中,我对每条路线都有要求:require(["yourmodule"],function(MyModule){//.
所以我正在使用jquery.flot和jquery.flot.selection并且因为define({...异步加载模块我遇到了问题因为选择插件试图将自己插入$.plot.plugins(这是由jquery.flot创建的)但在那一刻$.plot.plugins仍然没有定义。我发现require.config中的“shim”参数应该可以帮助我解决这个问题,但我没有运气......所以这里是破败...jquery.flot创建$.plotjquery.flot.selection将自身添加到$.plot.plugins我试过的...shim:{'js/lib/jquery.flot':
我遇到了一个相当奇怪的行为——我的RequireJS模块在IE9下似乎根本没有初始化和运行:...//Seemstobenotrunningatall.但是,每当我启动IE9的开发人员工具并重新加载页面时,模块都将正常运行,就像它们在Firefox/Chrome/Safari等中应该运行的那样。清理浏览器缓存并关闭IE9中的开发者工具将导致JavaScript再次完全无法运行。启动RequireJS模块执行的另一种方法是在它之前添加一个同步脚本调用:...//Addanysynchronousscriptcallinghereandthemodulebelowwillexecutefi
我正在尝试使用require.js加载模块,我的app.js中有以下内容:require.config({baseUrl:"js"});alert("helloworld");//fordebuggingrequire(['eh2'],function(eh2){alert("nothinghere");//fordebugging});但是,当我运行我的应用程序时,尽管加载了app.js,但从未加载我需要的模块-“helloworld”执行,但“nothinghere”没有执行!我在HTML页面中的脚本标记如下所示:而eh2.js位于js文件夹中,它被包裹在一个define语句中:d
我正在将一些javascript代码移植到typescript并使用requirejs。我有一个config.ts://fileconfig.ts//////require.config({baseUrl:'/scripts/App/',paths:{'jQuery':'/scripts/jquery-1.9.1','ko':'/scripts/knockout-2.2.1','signalR':"/scripts/jquery.signalR-1.0.1",},shim:{jQuery:{exports:'$'},signalR:{deps:["jQuery"]},ko:{deps:
我有一个扩展原始模块的插件。它应该只在明确需要时修改模块。问题:一旦需要一次,原始模块就会永远被修改,对于插件不是依赖项的情况也是如此。这里的顺序无关紧要,只需要一次插件就足够了。例子:define("main",[],function(){return{opt:"A"};});define("plugin",["main"],function(obj){obj.opt="B";});require(["main","plugin"],function(obj){console.log(obj.opt);//shouldlogB});require(["main"],function(
我有一个JavaScript项目,我想观察TDD方法。我为此选择了karma框架和requirejs库,并遵循了karma文档中演示的示例here.有一个单元测试文件的例子,它是:define(['app','jquery','underscore'],function(App,$,_){describe('justchecking',function(){it('worksforapp',function(){varel=$('');varapp=newApp(el);app.render();expect(el.text()).toEqual('require.jsupandrun
我想做这样的事情:我可以只构建第一个文件,然后将构建js文件包含在/js/main中,但是如果能够同时对两个项目进行开发而不必一直构建,速度会快得多.现在,当我尝试这个时,mainD4构建,然后js/main文件没有任何反应。 最佳答案 刚在这里找到答案:https://groups.google.com/forum/?fromgroups#!topic/requirejs/YWFdgYSU2f4require(['scripts/another/main']);或(function(){varreq=require.config(
我正在使用requirejs开发一个单页Backbone应用程序,今天当我部署到我们的beta服务器时,我发现初始页面加载大约需要20秒,同时它会获取所有脚本。我假设这是因为我在定义模块时使用了依赖数组:define(['ui','models/user','collections/campaigns','collections/groups','collections/keywords','collections/inboxes','collections/templates','collections/contacts','router'],function(Ui,UserDeta