Tag: requirejs

Angularjs工厂:传递$ scope,$ route,$ http时出错?

当$scope, $route, $http存在时,为什么我的工厂在下面继续抛出错误? app.factory(“factoryContacts”,function($scope,$route,$http){ return { getContacts: function(){ return $http({ method: ‘GET’, url:’php/listContacts.php’ }).then(function(response) { $scope.contacts = response.data; }); } }; }); 我不能把$scope, $route, $http传递给工厂吗? 我测试了这个基本的,它给了我同样的错误, app.provider(‘helloWorld’, function($scope) { // note $scope is present // In the provider function, you cannot inject any // service or factory. This can only be done at the // […]

使用jQueryMobile-Router的Require.js

我在我的html中加载了包含这样的jQuery的require.js: 我的requires.js的内容: require.config( { paths: { “jquery.mobile”: “lib/jquery.mobile”, “jquery.mobile.router”: “lib/jquery.mobile.router” }, shim: { “jquery.mobile” : { “exports”: “$.mobile” }, “jquery.mobile.router”: { “deps”: [ “jquery.mobile” ], “exports”: “$.mobile.Router” } } } ); require([“jquery.mobile.router” ], function() { require([“router”]); } ); 在我的router.js中,我创建了一个jquery移动路由器插件的新实例: router = new $.mobile.Router(…); 这给了我这个错误: 未捕获的TypeError:undefined不是函数 当我输出$和$ .mobile时,它们都是定义的,只是$ .mobile.Router是未定义的。 我在这做错了什么?

如果在返回模板之前删除了元素,则Knockout组件将失败

我有一个KO自定义绑定,它向页面添加一个组件(作为虚拟元素,但我认为这不重要),然后将视图模型应用于它。 组件通过服务器的require加载它的模板。 但是在加载过程中我遇到了一个问题,即更新自定义绑定并从页面中删除元素(如果不需要,我想让它整洁一下)。 这会导致竞争条件 – 如果在KO尝试应用组件时删除元素之前模板的异步查找尚未完成,则无法找到结束标记并引发错误。 我想知道是否有任何人可以建议缓解这个问题? 我已经知道applyBindings上没有回调机制,我不认为 afterRenderCallback会在它到达之前发生错误。 我想知道是否有办法取消,停止或中止该过程 ,但没有。 有任何想法吗? 这是一个演示我的问题的小提琴 。 我的自定义绑定看起来像这样: ko.bindingHandlers.customBinding = { update: function(element, valueAccessor){ var $element = $(element) if(ko.unwrap(valueAccessor())){ $element.data(“controller”, new CustomBindingController(element)); } else { var controller = $element.data(“controller”); if(controller){ controller.destroy(); $element.removeData(“controller”); } } } } 它正在调用控制器类,如下所示: function CustomBindingController(element){ var self = this, $element = $(element), $component; function […]

DataTables + RequireJS:无法读取undefined的属性’defaults’

我已经下载了DataTables的完整软件包及其所有模块,因为它无法通过CDN URL访问: https://www.datatables.net/download/ (所有选项均已选中) 我正在尝试使用RequireJS运行它,整个DataTables包中使用相同的依赖系统,所以它不应该失败。 JSFiddle(为JSFiddle编辑): http : //jsfiddle.net/42ucpwee/1/ 我的配置导致此错误: datatables.js:93165 Uncaught TypeError: Cannot read property ‘defaults’ of undefined datatables.js:93161-93171: var DataTable = $.fn.dataTable; /* Set the defaults for DataTables initialisation */ $.extend( true, DataTable.defaults, { dom: “<'row'>” + “<'row'>” + “<'row'>”, renderer: ‘bootstrap’ } ); 造成这个错误的原因是什么,我错过了什么或者我的配置错了吗? 的script.js: define([‘jquery’,’datatables.net’], function($) { $(‘#example’).DataTable(); }); main.js: requirejs.config({ […]

jqueryvalidation未加载requirejs

我在RequireJS中有一个主模块: require([ ‘jquery’, ‘jquery.validate’, ‘jquery.validate.unobtrusive’ ], function ($) { $(document).ready(function () { var validator = $(“form”).validate(); if ($(“#txtFirstName”).val() !== “”) validator.element(“#txtFirstName”); }); }); 当我加载此页面时,出现JavaScript错误: TypeError:$(…)。validate不是函数var validator = $(“form”)。validate(); ** 我现在不知道为什么? 加载所有脚本:

添加在已经将jquery作为全局的页面上使用jquery的RequireJS模块

我有一个应用程序的附加组件(称为appX),允许用户使用javascript,css和appX的webservices api创建自己的自定义。 通常自定义很小,不涉及很多外部库/插件,但是当它们有外部库时,典型用户选择的库是jQuery。 在appX的下一个版本中,他们本身使用jQuery,我知道这将打破一些自定义。 所以我需要模块化这种情况。 我还有其他一些问题,而RequireJS似乎是解决这些问题的好方法。 我只需要弄清楚如何在这种情况下正确应用RequireJS 在我的POC中,我正在加载require.js,如下所示: 我们将调用jQuery加载appX jqueryx和我要加载的jqueryp (p为私有) jQuery使用AMD,默认情况下在内部使用此定义: define( “jquery”, [], function () { return jQuery; } ); 但是在这种情况下,在JQuery(jqueryx)之后加载RequireJS,所以没有默认的’jquery’定义是正确的吗? 在我向你展示我的问题之前还有一些背景……文件结构是这样的: appx /js: jqueryx.js other.js appx /custom/js: jqueryp.js dostuff.js 看看RequireJS api,似乎我应该这样做: require.config({ baseUrl : ‘custom/js’, paths : { ‘jquery’ : ‘jqueryp’}, map: { ‘*’: { ‘jquery’: ‘jquery-private’ }, ‘jquery-private’: { ‘jquery’: ‘jquery’ […]

将require.js与Twitter Boostrap API和骨干一起使用

关于此条目使用RequireJS加载Backbone和Underscore ,我很清楚如何配置Backbone特定脚本和JQuery 。 但我该怎么做: 配置Twitter bootstrap.js ? 那json2.js呢? 谢谢!

如何将jquery样板转换为require样板?

如何将jquery命名空间插件转换或放入require样板? 对于国际事务, 这通常是我标准的jquery样板, // A namepace structure: (function($){ // Initial setting. var pluginName = ‘BR_account’; var storageName = ‘plugin_’ + pluginName; var methods = { init : function( options ) { console.log(“this is a jquery plugin boilerplate in requirejs boilerplate”); // nothing returned. } }; $.fn[pluginName] = function( method ) { if ( methods[method] ) […]

Sinon的假服务器没有响应

还有一些其他问题询问Sinon没有回应,但他们似乎都解决了一些平凡的问题,如无效的响应数据或切换配置选项。 我的情况如下: 在主应用程序(at /js/app/ )中,requireJS用于加载网站应用程序模块。 对于测试(at /js/test ),requireJS也用于加载相同的模块,但添加了Mocha , Chai和Sinon 。 这是test应用程序的引导程序: define( “testRunner”, [“require”, “chai”, “module”, “sinon”, “mocha”], function( require, chai, module ){ // Chai setup assert = chai.assert; should = chai.should(); expect = chai.expect; // Mocha setup mocha.setup( ‘bdd’ ); // tests require( module.config().tests, function(){ mocha.run(); } ); } ); require([“testRunner”]); module.config().tests在requirejs.config({})调用中定义为: “config”: […]

requirejs模块未定义

我有以下目录结构 scripts modules tabs.js app.js 我在app.js中有以下代码 define([ ‘jquery’, ‘underscore’, ‘modules/tabs’, ], function($, _, Tabs) { var App = (function() { var init = function() { console.log(‘app’); Tabs.init(); }; return { init: init }; }()); return App; }); 跟随tabs.js中的代码 define([ ‘jquery’, ‘underscore’, ‘../app’ ], function($, _, App) { var Tabs = (function() { var init = […]