贷款软件测试经典bug描述,软件测试作业(一)描述自己最近遇到的bug以及解决方案...

因为我最近在使用angularJS,就把angularJS中遇见的一些问题和解决方案写出来和大家分享一下。

1. angularJS的$http.post请求,SpringMVC后台接收不到参数

问题一般为:400 Required String parameter ‘rPassword’ is not present 或其他400错误

解决方法:我试了一下,可以采用这个方法,修改提交参数config的headers和transformRequest:

(1) 创建一个全局的transformRequest function

var app = angular.module('myApp');

app.config(function ($httpProvider) {

$httpProvider.defaults.transformRequest = function(data){

if (data === undefined) {

return data;

}

return $.param(data);

}

});

然后为每一个方法或者创建一个全局的Content-Type header:

$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';

(2) 为每一个需要的方法创建局部的transformRequest:

var transform = function(data){

return $.param(data);

}

$http.post("/foo/bar", requestData, {

headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},

transformRequest: transform

}).success(function(responseData) {

//do stuff with response

});

2. $scope.$apply的使用bug

bug:数据双向绑定失效,就是明明在controller里面给$scope.×××赋值了,在页面上xxx愣是显示不了,但是点击一下输入框或是form表单的提交按钮,xxx数据信息就显示了,是不是好坑啊。

解决方法 : 添加 $scope.$apply(),我是这样做的:

$scope.$apply(function(){ $scope.xxx = “你赋的值”;

});

原因:

一般情况下是不需要我们手动添加这一句代码的,因为angularJS本身在需要的时候调用,以达到我们所看到的数据双向绑定的效果。

但是你若是引用一个外部插件或者其他,在回调函数里创建或更新$scope.xxx的数据,因为外部插件本身已经脱离了angularJS的作用域,所以数据双向绑定在这里没有效果,只能手动添加$scope.$apply()来通知页面获取数据。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值