品牌

武汉北大青鸟java课程:angularJS使用常见问题解决

时间:03-31 栏目:java技术

  在武汉北大青鸟java课程中,需要强调的一点内容,关于angularJS使用,会常常遇到一些常见的问题,为了更好的解决这些问题,武汉北大青鸟光谷校区的java课程老师提出具体方案!

  1. angularJS的$http.post请求,SpringMVC后台接收不到参数值的解决方案

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

  解决方法 一:修改源码http://my.oschina.net/buwei/blog/191640 (可以详细了解请求接收不到的原因)

  解决方法 二:感觉修改源码总是不好滴,可以采用这个方法,修改提交参数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的使用

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

  解决方法 : 添加 $scope.$apply()

  例如

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

  });

  原因

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

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

专业老师指导

赵老师

赵老师

从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业

立即在线咨询

培训咨询客服

陈老师

陈老师

IT培训专业客服,用自己的真诚解决了无数学子的困惑

立即在线咨询

热门课程任你选,成长蜕变看的见

课程余量有限,即将截止报名!查看详情

抢到名额,您将获得

1、【北大青鸟武汉校区】“十三家校区通用课程体验卡一张”
2、现加微信,您将免费获得3天IT训练营的机会,另送价值6800的线上课程学习卡一张。

全国百余家校区

只为您方便就学

全国百余家校区 光谷校区

武汉市东湖开发区流芳园北路9号东一产业园内(武汉工程大学流芳校区旁)

点击预约
到校领取学习大礼包