jjzjj

requirejs

全部标签

javascript - Squire 正在打破其他测试

我正在使用Karma、Jasmine、Jasmine.Async、Sinon和Chai。好消息...这个测试工作正常。依赖关系被mock,spy被调用,故意破坏测试对象导致测试失败。define(['chai','squire'],function(chai,Squire){varshould=chai.should(),async=newAsyncSpec(this),subject,injector=newSquire();describe('EventsView',function(){describe('whenaneventisclicked',function(){varm

javascript - 与 AMD (requirejs) 一起获得闭包编译器类型安全性的最可靠方法是什么?

虽然JavaScript及其许多库(jQuery、RequireJS)允许创建许多很棒的网站,但在考虑构建更大的网站时,我发现它缺乏类型安全性令人望而生畏。Google有一个很棒的closurecompiler这让你可以annotate你的JavaScript和JSDoc并检查它的类型。在试用了其丰富的类型系统后,我预计这将大大提高生命周期更长的JavaScript项目的可维护性。唯一的问题是它不能很好地与AMD一起玩像RequireJS这样的库。有一个实验--transform_amd_modules连接JavaScript文件并通过消除它来处理作用域的标志。然而,这似乎有点反模式,

javascript - "Error: Mismatched anonymous define()"与 Karma + RequireJS + Jasmine

我现在卡住了一段时间,试图设置和运行单元测试。我有一个AngularJS前端加载了针对生产优化的RequireJS和r.js,所以它很好地放在一个文件中。这行得通!执行单元测试是行不通的。到目前为止,这没什么特别的,只是从教程中复制了一个starter。tests/user/user.test.js:define(['angular','angular-mocks','app'],function(angular,app){describe('Unit:UserController',function(){beforeEach(module('user.app'));it('shoul

javascript - 在 IE 中使用带有数据属性的 javascript 向 DOM 添加脚本标签

在我的页面上运行一些东西后,我需要将以下脚本标记添加到DOM:我知道最好所有的东西都在我的require文件中,但现在我需要修复它才能在IE中工作。我在FF/Chrome中工作的是:varscript=document.createElement('script');script.setAttribute('data-main','js/main');script.src='lib/Require/require.js';document.getElementsByTagName('script')[0].parentNode.appendChihld(script);但是,当我尝试设

javascript - 如何在基于 Backbone.js 的应用程序中干净地获取 401

在我基于Backbone.js的应用程序中,我正在与我的API对话,该API以401响应,以防底层请求是在没有或使用无效身份验证token的情况下发出的。每次收到401时,我都想通过导航到#login页面来进行检测。为了获取401,我成功包装了Backbone.sync,但那时我有点卡住了。我在这里尝试了几种策略:在Backbone::sync中抛出'unauthorized'并尝试在我的路由器中获取。失败:“未经授权未捕获”尝试在Backbone::sync中向下#.navigate'#login'这不仅看起来很奇怪,而且还带来了我的应用程序基于AMD/require.js的问题而且

javascript - 无法读取未定义的属性 'View'

这是我第一次使用backbone的require.js,我正在努力寻找我的观点的问题:Cannotreadproperty'View'ofundefined//search.js:8我的目录结构是:.├──index.php└──js  ├──app.js  ├──lib  │  ├──backbone.js  │  ├──backbone-min.js  │  ├──jquery-min.js  │  ├──require.js  │  └──underscore-min.js  ├──main.js  ├──model  ├──router.js  ├──text.js  └──v

javascript - 我们可以从 requirejs 中的模块导出多个非 AMD 函数吗?

如果我有一个名为old.js的非AMD模块,并且在这个脚本中我定义了两个函数f1和f2。我需要使用它们,如何导出两者?require.config({paths:{"jquery":"https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min",},shim:{"old":{deps:["jquery"],exports:["f1","f2"]}},urlArgs:"bust="+(newDate()).getTime()});这行不通。我会得到split错误。该文档没有提到多个(http://requirejs.org/

javascript - 在 RequireJS 环境下模拟使用 Lo-Dash 和 Underscore

在RequireJS环境中,允许某些AMD模块使用Lo-Dash而其他模块同时使用Underscore的最佳方法是什么? 最佳答案 我能够相当简单地自己解决问题。专门为需要Lo-Dash的模块使用lodash路径,为需要“underscore”的模块使用underscore:require.config({paths:{'underscore':'path-to-my-underscore-file','lodash':'path-to-my-lodash-file'}});这样两个库可以同时使用,互不干扰。与普遍的看法和主张相反,

javascript - 使用 require.js 加载非 amd 模块

目前我正在为一个有趣的副项目使用require.js我正在工作,除了一个名为prism.js的代码语法高亮插件外,一切正常。我可以看到插件正在通过Chrome中的网络选项卡提取,但插件未初始化。我不确定这是需求问题还是插件问题,想知道是否有人可以提供帮助。下面是我的main.js:require.config({//3rdpartyscriptaliasnamespaths:{//CoreLibrariesmodernizr:"libs/modernizr",jquery:"libs/jquery",underscore:"libs/lodash",backbone:"libs/bac

javascript - 如何编写可测试的 requirejs 模块

我是单元测试的新手,所以我可能遗漏了一些东西,但我应该如何构建requirejs模块以使它们完全可测试?考虑优雅的显示模块模式。define([],function(){"usestrict";varfunc1=function(){vardata=func2();};varfunc2=function(){returndb.call();};return{func1:func1}});据我所知,这是构建requirejs模块的最常见模式。如果我错了请纠正我!因此,在这个简单的场景中,我可以轻松地测试func1的返回值和行为,因为它是全局的。但是,为了测试func2我还必须返回它的引用