草庐IT

angularjs-jasmine-matchers

全部标签

javascript - 如何在 Jasmine.js 中使用带有 toHaveBeenCalledWith 的 spy 和可变数组?

我有一些代码以数组作为单个参数调用回调函数。调用回调后,代码更改数组内容。它类似于这段代码:functionmyCode(callback){varsomeArray=[1,2,3,4];callback(someArray);//changesomeArrayinarbitrarywayssomeArray.splice(2);...}现在,我想验证是否使用正确的数组内容调用回调。使用Jasmine.js我会这样写我的规范:describe("Mycode",function(){varcallback;beforeEach(function(){callback=jasmine.c

javascript - 如何使用 angularjs 对 HTML 列表进行渐进式增强?

假设我有一个可访问的网站,该网站将在禁用JS的情况下进行咨询。我有一个新闻列表,我可以这样总结:News1News2News3每次重新加载页面时,您都会添加最新的新闻,如果您获得超过10条新闻,则旧的新闻将被丢弃。现在,如果我使用AngulardJS,我必须将数据放入一个模型和一个ng-repeat,并摆脱我的静态HTML。该列表将动态填充,因此使用JS的人将看到几乎实时更新的列表。我需要的是让两者协同工作。我需要静态列表,如果JS被激活,我希望将当前元素插入到模型中并由angularjs管理。现在我目前的做法是:当我的模型初始化时,分离列表DOM,手动提取数据,并删除所有子列表在列表

javascript - 如何在 Jasmine 测试框架中处理谷歌地图事件

我正在尝试使用jasmine框架为Googlemap编写Javascript测试。我想要做的是启动map并更改边界(缩小)并测试map是否已正确缩小。我遇到的问题是jasmine好像没有办法处理事件。Jasmine有一个spyOn()方法,可以查找方法(不是事件)的用法。jasmine中还有waits()方法可以等待特定的时间。这些方法都不适用于处理事件。有人对Jasmine的事件有任何经验吗?我正在使用的代码:describe('Mapview',function(){beforeEach(function(){$('body').append("");this.view=newMa

javascript - AngularJS 指令隔离范围不更新父级

我有一个有模型绑定(bind)的指令,当通过ng-click调用save()方法时,父范围不会更新,除非我调用$scope.$apply()然后抛出$applyalreadyinprogress错误。我正在使用ngResource,事件有一个监听器调用$scope.model.$save();有解决办法吗?还是我做错了什么?.directive('editable',function(){return{restrict:'AE',templateUrl:'/assets/partials/editable.html',scope:{value:'=editable',field:'@f

javascript - AngularJS - 为 GET 请求设置 HTTP header

可能这是一个普遍的问题,可以在网上找到,但我得到的是这里。AddingacustomheadertoHTTPrequestusingangular.js所以我照着做,把代码改成了设置标题varconfig={headers:{'Authorization':'XXXYYYtoken="xxxxxxxx",realm="dash-api"',"X-Testing":"testing"}};获取请求调用:return$http.get(api.host+'/agn/12/adv/1860/cam?status=1',config).then(function(response){retur

javascript - AngularJS 指令的 link() 函数中的 DOM 元素未准备好

我正在创建一个AngularJS指令,它应该有一个C3.js基于它的图表。问题是C3库看不到它应该附加到的DOM元素。该指令的link函数如下所示:link:function(scope,element,attrs){scope.someid='id';scope.chart=c3.generate({bindto:"#somechart"+scope.someid,data:{columns:[['data1',30,200,100,400,150,250],['data2',50,20,10,40,15,25]]}});console.log($("#somechart"+scop

javascript - Jasmine spyOn mongoose 保存

我想模拟Mongoose模型的save()函数。我要测试的函数在名为user.js的文件中如下所示:varUser=import('User.js')post:function(req,res){varuser=newUser({password:req.body.password,email:req.body.email,});user.save(function(err){if(err){....}else{....}});我试图在另一个名为user_spec.js的文件中编写如下所示的测试:varHander=require('user.js')it('worksproperly

javascript - 将数据直接加载到选择框angularjs

我有一个订阅了的客户。您还可以编辑客户订阅。当您要编辑订阅时,您可以在不同的选择框中选择不同的选项。当您在第一个选择框中选择一个选项时,其他选择框将填充“属于”您在第一个选择框中选择的选项的数据。这是我的第一个选择框的html代码:这是我用数据填充选择框的angularjs代码:$http.get($rootScope.appUrl+'/nao/abb/getSuperkundData/'+$rootScope.abbForm).success(function(data){$scope.superkundOptions=data;});我只是从后端获取数据。这是我剩下的选择框:Väl

javascript - 如何在 angularJS 指令中使用 jQuery 插件(语义用户界面)?

我在我的项目中使用semantic-ui,pulgin是checkbox有人说如果使用jQ插件,你必须在angular指令中使用它但它不起作用semantic-uiAPI文档中semantic-ui设置的checkbox,你必须将其设置为initcheckbox$('.ui.checkbox').checkbox();我尝试将其更改为这样的Angular:app.html这是angularjs文件中的指令todoApp.directive('todoCheckbox',function(){return{restrict:'A',link:function(scope,elem,att

javascript - Safari 扩展 – 更新表单自动完成的 angularJS 模型

我写这篇文章是希望找出在从浏览器扩展程序执行自动完成时如何触发angularJS更新其模型。我知道其他一些应用(密码管理器,如LastPass)成功地做到了这一点。我正在构建一个小的Safari扩展,它将帮助我自动完成Apple的(荒谬的)沙盒用户创建表单,它有10个输入字段和几个选择器元素。到目前为止,我已经设法使用jQuery获取输入字段并使用.val()设置它们的值。但是,这不会触发angularJS更新其模型,因此即使输入字段中有文本,angular也会认为没有文本并且无法验证表单。如果我可以访问Angular对象,问题可以很容易地解决,但我似乎无法做到这一点。当我尝试访问an