使用angularJS遇见的一些问题的解决方案
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
});参考网址AngularJS - Any way for $http.post to send request parameters instead of JSON?
2. scope.$apply的使用
问题一般为:数据双向绑定失效,就是明明在controller里面给$scope.×××赋值了,在页面上xxx愣是显示不了,但是点击一下输入框或是form表单的提交按钮,xxx数据信息就显示了,是不是好坑啊。
解决方法 : 添加 $scope.$apply()
例如
$scope.$apply(function(){
$scope.xxx = “你赋的值”;});原因
一般情况下是不需要我们手动添加这一句代码的,因为angularJS本身在需要的时候调用,以达到我们所看到的数据双向绑定的效果。
但是你若是引用一个外部插件或者其他,在回调函数里创建或更新$scope.xxx的数据,因为外部插件本身已经脱离了angularJS的作用域,所以数据双向绑定在这里没有效果,只能手动添加$scope.$apply()来通知页面获取数据。
3. 因为是新手,一步一步的来
使用angularJS遇见的一些问题的解决方案的更多相关文章
- angularjs 遇见$scope,xxx=function()报错为该函数未定义
本包子今天遇见一个问题,就是明明写了$scope,xx=function()但是报错了,报错显示是该函数未定义,我就很着急的先将函数写成一个全局函数,就没问题,等下午有空的时候寻思了一下,为什么全局就 ...
- angularJS 数组更新时重新排序之解决方案一:这个坑,绕开吧,不跳了……
今天产品大人发现了一bug,图表数据和数据库总是对不上,原因是当前端更新数组时,angularJS默认对数组进行了排序. // 点击事件:input复选框 $scope.fnClickUpdateAr ...
- AngularJs 开发遇到的问题,以及解决方案
1>ng-if 导致 ng-model 失效的问题 比如说下拉联动隐藏显示的时候,多个验证模块,需要使用到ng-if.可以使用 $parent 来解决这个问题 ng-model="$p ...
- [开源] angularjs + Asp.net 前后端分离解决方案
本文版权归 博客园 萧秦 所有,此处为技术收藏,如有再转,请于篇头明显位置标明原创作者及出处,以示尊重! 作者:萧秦 原文:http://www.cnblogs.com/xqin/p/4862849. ...
- AngularJS中移动页面滚动穿透解决方案
()] + s[]) >= , preventDefault: false, click: IscrollAndroidBug.click() }); var _ele = document.g ...
- android 入门-android Studio 解决方案
一.当提示 解决方案: 1. 2. 二.从这步到这步 的时候,可能遇见下面的问题. 解决方案: 更新一下build-tools 19.1.0版本 放到你的sdk里并重启as. 三. 当遇见这样的情况 ...
- 3.1将AngularJS放入上下文
本章,作者将AngularJS放在全球web app开发的上下文里,并为后面的章节设置功能.AngularJS的目标,是带来一款工具,它有服务端开发web client的能力,并易于开发,测试,富.复 ...
- angularJs入门篇-hello world 开头
AngularJS 采用了完全不同的解决方案,它创建实时视图模板代替视图,而不是将数据合并进模板之后更新DOM. 任何一个独立视图组件中的值都是 动态替换的.这个功能可以说是AngularJS中最重要 ...
- Angularjs1.X进阶笔记(1)—两种不同的双向数据绑定
一. html与Controller中的双向数据绑定 html-Controller的双向数据绑定,在开发中非常常见,也是Angularjs1.x的宣传点之一,使用中并没有太多问题. 1.1数据从ht ...
随机推荐
- 记录在windows7上安装MongoDB
1.首先下载 官网地址 https://www.mongodb.com/download-center#community 选择 Windows Vista 32-bit, without SS ...
- 执行Python "/bin/usr/python: bad interpreter: No such file or directory" 错误
今天在电脑上写了一个Python脚本,写好之后用ftp传上去,然后执行/var/www/cron.py,结果报错,/bin/usr/python: bad interpreter: No such f ...
- Android四大组件及activity的四大启动模式
Android四大组件 1. 广播接收者的两种类型: (1)系统广播接收者,就是继承BroadcastReceiver这个类,然后还要在清单文件中注册,注册之后给他一个action.当系统发生了这个a ...
- SpirentTestcenter测试仪的自动化
SpirentTestcenter,美国思博伦公司的网络测试仪表,覆盖以太网L2~L7层,使用过的仪表中功能最强大的. 1.SpirentTestcenter的自动化测试场景 测试PC上的AT框架-- ...
- java利用Aspose.cells.jar将本地excel文档转化成pdf(完美破解版 无水印 无中文乱码)
下载aspose-cells-8.5.2.jar包 http://pan.baidu.com/s/1kUBzsQ7 JAVA代码 package webViewer; import java.io.* ...
- css之页面两列布局
两列布局:左边固定,后边自适应 第一种方法:左边的div左浮动或者是绝对定位,右边的div加margin-left:左边div的宽度 html部分 <div class="left&q ...
- modelsim(3) - summary ,issue,tips
1) the OEM of modelsim is 10 times slower than offical questa 2)how to the file full path in the mod ...
- 《CoffeeScript应用开发》学习:第三章-构建简单的应用程序
字符串插值 CoffeeScript提供了一种更好的构建字符串的解决方案.在双引号字符串(单引号无效)中使用#{}包含一个动态的值. str = 'Hello, CoffeeScript.' cons ...
- 一个简单的零配置命令行HTTP服务器
http-server 是一个简单的零配置命令行HTTP服务器, 基于 nodeJs. 如果你不想重复的写 nodeJs 的 web-server.js, 则可以使用这个. 安装 (全局安装加 -g) ...
- vc++ 程序开机自启动和取消启动
//开机启动 int CMainWnd::CreateRun() { //添加以下代码 HKEY hKey; }; //得到程序自身的全路径 DWORD dwRet = GetModuleFileNa ...