Tag: requirejs

指定的版本无效,facebook分享插件错误

我想为我正在使用的networking应用程序使用Facebook共享插件,我只需要基本的共享button。 该应用程序使用requirejs加载JavaScript,所以我跟着怎么做,并更改了Facebook的APIurl的代码片段在Facebook 文档中find 。 这不起作用,sdk抛出invalid version specified错误invalid version specified 。 这是我的文件的外观。 main.js require.config({ shim: { 'facebookshare' : { exports: 'FB' } }, paths: { 'facebookshare': "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0" } }); require(['fb']); fb.js define(['facebookshare'], function(facebook) { document.body.innerHTML += '<div class="fb-share-button" data-href="https://developers.facebook.com/docs/plugins/" data-layout="button"></div>'; }); 什么是最好的方式包括只有facebook的sharej插件与requirejs? 我提到了下面的问题,但都没有提供具体的解决scheme。 未被捕获的错误:没有指定版本和错误的版本错误 。

如何使用jquery ui与requirejs

我想在我的应用程序中使用jQuery UI的addClass函数。 除了我正在使用正常的jQuery,下划线,骨干都与requirejs分层。 我已经这样configurationjQuery UI: require.config({ deps: ["main"], paths: { "text": "lib/text" , "jquery": "lib/jquery" , "jquery-ui": "lib/jquery-ui" , "underscore": "lib/underscore" , "backbone": "lib/backbone" , "bootstrap": "lib/bootstrap" , "templates": "../templates" }, shim: { "jquery-ui": { exports: "$", deps: ['jquery'] }, "underscore": { exports: "_" }, "backbone": { exports: "Backbone", deps: ["underscore", "jquery"] }, "bootstrap": ['jquery'] […]

使用grunt.js合并使用RequireJS的JavaScript文件的工作项目结构?

我有一些使用RequireJS在浏览器中加载单个JavaScript模块的项目,但是我还没有优化它们。 在开发和生产中,应用程序会为每个JavaScript文件分别提出请求,现在我想用Grunt来解决这个问题。 我试图把一个简单的项目结构放在一起无济于事,所以我想知道如果有人能为我提供一个工作的例子。 我的目标如下: 在开发模式下,通过为每个需要的模块发出一个单独的请求,一切在浏览器中运行。 在开发模式下不需要任何烦人的任务或串联。 准备就绪后,我可以运行一个grunt任务,使用r.js优化(组合)所有JavaScript文件,并在本地进行testing。 一旦我确信优化的应用程序正确运行,我可以部署它。 为了这个对话,这是一个示例结构: grunt-requirejs-example/ grunt.js main.js (application entry point) index.html (references main.js) lib/ (stuff that main.js depends on) a.js b.js requirejs/ require.js text.js build/ (optimized app goes here) node_modules/ (necessary grunt tasks live here) 具体来说,我正在寻找一个可以开始的工作项目结构。 我的主要问题是: 如果这个项目结构有缺陷,你有什么build议? 究竟需要在我的grunt.js文件中,特别是要获得r.js优化器的工作? 如果所有这些都不值得工作,并且有一种方法可以使用grunt watch任务在每次保存文件的时候自动在开发模式下创build所有的东西,那么我就是所有人。 我想避免任何可以减缓循环的变化,以便在浏览器中看到它。

未定义的对象通过Requirejs传递

我正在使用Requirejs在我们的Web应用程序中加载JavaScript。 问题是,我得到一个undefined对象被传递给一个模块,当在其他模块中使用,是非常好的实例化。 好的,这是设置。 我的main.js文件requirejs在启动时运行: require.config({ baseUrl: "/scripts", paths: { demographics: "Demographics/demographics", complaints: "Complaints/complaints", } }); require(["templates", "demographics", "complaints", "crossDomain"], function (templates, demographics, complaints) { "use strict"; console.log("0"); console.log(demographics === undefined); demographics.View.display(); }); 很多configuration已经被剥离到这个问题的核心文件。 这里是Demographics.js : define(["ko", "templates", "complaints", "globals", "underscore"], function (ko, templates, complaints, globals) { // Stuff removed. return { View: view }; }); […]

使用requireJS模块作为单例是不好的做法?

我打算使用以下模式来使用基于requireJS的模块作为单例。 请注意, classA返回types为“classA”的实例,而类classB,classC和main的其余部分则返回模块中类的types。 所有这些都是基于MooTools类的类。 这个想法是使用classA作为全局可用的单例,这些方法只是填充。 任何想法,如果这是一个可以接受的模式使用? 这会在稍后阶段回来咬我吗? 我还没有尝试在项目上运行r.js,所以我有点担心,并寻求一些build议。 // classA.js define([], function() { var classA = new Class({ initialize: function (regionId) { // perform some Initialization. this.data = null; }, doSomething: function(param) { // some thing. this.data = param; } }; return new classA(); }); // classB.js define(["classA"], function(classA) { var classB = new Class({ […]

在require.js data-main上过期caching

我正在使用require.js和r.js打包我的AMD模块。 我通过以下语法使用jquery&requirejs: <script data-main="/js/client" src="/js/external/require-jquery.js"></script> 这一切都很好的前后包装,但我遇到了很多问题,铬和移动Safari浏览器持有的caching版本的client.js。 我想添加一个cachebuster client.js,但我似乎无法弄清楚如何使用上述语法。 我尝试了一些变化: <script data-main="js/client.js?b=busted" src="/js/external/require-jquery.js"></script> 但现在需要尝试从/ ,而不是/js获取client.js,所以它是404s。 我也尝试添加 urlArgs : "bust="+new Date().getTime() require.config ,但它似乎没有效果。 我也尝试给app.build.js添加相同的值,但是当它在那里时,r.js不再连接我的js文件,只是丑化它们。 什么是正确的语法来破坏一个require.js数据主脚本caching?

RequireJS如何处理多个页面和部分视图?

我正在调查RequireJS,但我不确定一些事情。 我了解如何使用main.js加载所有的依赖关系。 但是,我是否需要添加任何逻辑来处理main.js依赖关系? 对我来说, main.js看起来像一个document.ready状态,你在文档加载时input逻辑,对吗? 而对于其他页面和部分视图,我是否需要创build多个main.js或者我可以从<script>的视图的依赖关系中引用加载的函数?

如何使用RequireJS加载Google Maps API?

我正在努力与requireJS加载gmaps api。 这是我试过的: requirejs.config({ urlArgs: "noCache=" + (new Date).getTime(), paths : { "jquery": "vendor/jquery-1.8.2.min", "bootstrap": "vendor/bootstrap.min", "underscore": "libs/underscore-min", "backbone": "libs/backbone-min", "template": "libs/template", "gmaps": "http://maps.google.com/maps/api/js?v=3&sensor=false" }, shim: { 'backbone': { deps: ['jquery', 'underscore'], exports: 'Backbone' }, 'underscore': { exports: '_' }, 'bootstrap': { deps: ['jquery'] }, 'gmaps': { deps: ['jquery'] }, 'main':{ deps: ['jquery','gmaps'] } } […]

dynamic注入模块,只有在需要的情况下

我将Require.js与Angular.js结合使用。 有些控制器需要其他人不需要的巨大外部依赖,例如, FirstController需要Angular UI Codemirror 。 这是一个额外的135 kb,至less: require([ "angular", "angular.ui.codemirror" // requires codemirror itself ], function(angular) { angular.module("app", [ …, "ui.codemirror" ]).controller("FirstController", [ … ]); }); 我不想在每次加载页面的时候都join这个指令和Codemirror lib,这样就可以让Angular变得更加快乐。 这就是为什么我现在正在加载控制器只有当路线被击中, 就像这里所做的一样 。 但是,当我需要类似的东西 define([ "app", "angular.ui.codemirror" ], function(app) { // ui-codemirror directive MUST be available to the view of this controller as of now app.lazy.controller("FirstController", […]

RequireJS库的定义说明

我开始阅读有关RequireJS的几个教程。 在他们中没有一个是为我定义的“定义”关键词。 有人可以帮助我以下几点: define( ["Models/Person", "Utils/random", "jquery"], function (Person, randomUtility, $) {..} ) 什么是“定义”? 在里面定义一个数组和一个匿名函数的函数? 或者是别的什么? 有人能给我更多关于这种定义的信息吗? 另外:谢谢你nnnnnn和pradeek你的答案。 在欧洲,当我发布这个问题的那天晚上是2点半。 也许因此我不认为这是一个简单的函数调用。