用angular实现$.param()

首先介绍一下$.param()

功能: 序列化对象或数组,返回字符串

eg:

var params = { width:1900, height:1200 };
var str = jQuery.param(params);
console.log(str);

输出: width=1680&height=1050

使用angular替代,方法为:

function serializeData( data ) {
    // If this is not an object, defer to native stringification.
    if ( ! angular.isObject( data ) ) {
        return( ( data == null ) ? "" : data.toString() );
    }
    var buffer = [];
    // Serialize each key in the object.
    for ( var name in data ) {
        if ( ! data.hasOwnProperty( name ) ) {
            continue;
        }
        var value = data[ name ];
        buffer.push(
            encodeURIComponent( name ) + "=" + encodeURIComponent( ( value == null ) ? "" : value )
        );
    }
    // Serialize the buffer and clean it up for transportation.
    var source = buffer.join( "&" ).replace( /%20/g, "+" );
    return( source );
};
时间: 2024-10-12 04:37:18

用angular实现$.param()的相关文章

浅谈HTML5单页面架构(二)——backbone + requirejs + zepto + underscore

本文转载自:http://www.cnblogs.com/kenkofox/p/4648472.html 上一篇<浅谈HTML5单页面架构(一)——requirejs + angular + angular-route>探讨了angular+requirejs的一个简单架构,这一篇继续来看看backbone如何跟requirejs结合. 相同地,项目架构好与坏不是说用了多少牛逼的框架,而是怎么合理利用框架,让项目开发更流畅,代码更容易管理.那么带着这个目的,我们来继续探讨backbone. 首

websocket 项目应用

序言 很早就想用起来websocket,可惜需要后台服务的支持,技术的翻新总会给我带来巨大的冲击,最近后端人员学习了websocket相关后台技术.于是我们开始动起来了. 学习 这位大兄弟的文章  http://www.cnblogs.com/smark/archive/2012/11/26/2789812.html 背景 因为需要做一个进度条功能,表格刷新基本angualr的双向绑定,说到底就是 $watchCollection,脏值检测来驱动渲染.所以之前加载方法就是定时改变数据源来实现.

Ajax用法与区别

上一次复习了XMLHttpRequest对象,这一次要总结一下Ajax的其他几个对象,以及各个版本的Ajax用法和区别. FormDate 现在Web中大家都会用到表单的数据序列化,XMLHttpRequest也提供了一个叫做FormData类型: var data=new FormData(); data.append("name","张三"); data.append("age","14"); alert(data.get

Angularjs 源码

'use strict'; /* We need to tell jshint what variables are being exported */ /* global -angular, -msie, -jqLite, -jQuery, -slice, -push, -toString, -ngMinErr, -_angular, -angularModule, -nodeName_, -uid, -lowercase, -uppercase, -manualLowercase, -man

backbone + requirejs + zepto + underscore

转自:  http://www.cnblogs.com/kenkofox/p/4648472.html 这一篇继续来看看backbone如何跟requirejs结合. 相同地,项目架构好与坏不是说用了多少牛逼的框架,而是怎么合理利用框架,让项目开发更流畅,代码更容易管理.那么带着这个目的,我们来继续探讨backbone. 首先,来看看整个项目结构. 跟上一篇angular类似,libs里多了underscore和zepto.三个根目录文件: index.html:唯一的html main.js:

AngularJS $http 异步后台无法获取请求参数

angular在通过异步提交数据时使用了与jquery不一样的请求头部和数据序列化方式,导致部分后台程序无法正常解析数据.   原理分析(网上的分析): [javascript] view plaincopyprint? <span style="font-size:14px;">对于AJAX应用(使用XMLHttpRequests)来说,向服务器发起请求的传统方式是:获取一个XMLHttpRequest对象的引用.发起请求.读取响应.检查状态码,最后处理服务端的响应.整个

ANGULAR $HTTP请求【转】

angular使用post.get向后台传参的问题 一.问题的来源 我们都知道向后台传参可以使用get.put,其形式就类似于name=jyy&id=001.但是在ng中我却发现使用$http post进行异步传输的过程中后台是接收不到数据的.其实这个问题是因为请求头的缘故.在ng中默认的请求头是:"Content-Type":"application/json",也就是说传递参数是使用的就是json格式.但是后台默认的却是Content-Type': 'a

Angular 4+ Http

HTTP: 使应用能够对远端服务器发起相应的Http调用: 你要知道: HttpModule并不是Angular的核心模块,它是Angualr用来进行Web访问的一种可选方式,并位于一个名叫@angual/http的独立附属模块中:也就是说:使用http之前要引入此模块; 1.基本使用: import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; impo

手动搭建一个完整的angular实践项目

以下我记录如何简单的搭建一个angular项目, 比较适合有前端基础,但又没有使用过angular的前端开发人员,因为我看到网上的教程又都配套的使用了一些其他框架或者打包工具,以及进行一些复杂的开发环境配置,不利于初级的人学习和理解.后续我也会陆续写几篇结合不同工具框架,以及在混合app开发中搭建angular框架项目. 应用场景: 基于angular的PC端web项目,采用require加载资源,使用angularAMD和angularCSS实现按需加载angular的controllers和