angular.js/src/ng
joshkurz 807394095b fix(Angular.js): handle duplicate params in parseKeyValue/toKeyValue
parseKeyValue and toKeyValue can now handle duplicate values in the query.
```
?x=1&x=2 <-> {x:[1,2]}
```

The algorithm looks like:
    1)parseKeyValue looks for presence of obj[key]
    2)detects and replaces obj[key] with [obj[key],val]
    3)then pushes more duplicates if necessary
    4)toKeyValue decodes array correctly
    5)(not changed)$location.search({param: 'key'}) still replaces if necessary
    6)(not changed)$location.search({param: ['key1', 'key2']}) sets the url with duplicates

BREAKING CHANGE: Before this change:
- `parseKeyValue` only took the last key overwriting all the previous keys;
- `toKeyValue` joined the keys together in a comma delimited string.
This was deemed buggy behavior. If your server relied on this behavior
then either the server should be fixed or a simple serialization of
the array should be done on the client before passing it to $location.
2013-07-01 19:32:12 +01:00
..
directive docs(ngBind): clarify some of the writing 2013-06-27 21:20:37 +01:00
filter docs(filters): fix minor typographical error 2013-05-20 15:36:10 +01:00
anchorScroll.js docs(anchorScroll): correct word "location" 2012-12-19 21:01:41 +01:00
animation.js style(*): fix up semicolon and var usage 2013-05-09 15:01:22 +01:00
animator.js feat(ngdocs): support popover, foldouts and foldover annotations 2013-06-17 22:00:54 -07:00
browser.js feat(jqLite): switch bind/unbind to more recent jQuery on/off 2013-06-19 20:53:24 +01:00
cacheFactory.js docs($cacheFactory): show that you can access existing caches 2013-07-01 12:01:07 +01:00
compile.js fix(compiler): corrects component transclusion on compilation root. 2013-06-27 21:30:24 -07:00
controller.js chore(minErr): replace ngError with minErr 2013-06-17 13:29:30 -07:00
document.js docs(*): simplify doc urls 2012-06-12 00:10:18 -07:00
exceptionHandler.js style(exceptionHandler): add ws 2013-04-11 15:32:20 -07:00
filter.js docs(filter): improve syntax for usage in templates 2013-04-24 21:55:58 +01:00
http.js fix($http): ensure case-insens. header overriding 2013-06-19 21:30:59 +01:00
httpBackend.js chore(minErr): replace ngError with minErr 2013-06-17 13:29:30 -07:00
interpolate.js fix($compile): reject multi-expression interpolations for src attribute 2013-06-24 14:17:18 -07:00
locale.js docs(*): simplify doc urls 2012-06-12 00:10:18 -07:00
location.js fix(Angular.js): handle duplicate params in parseKeyValue/toKeyValue 2013-07-01 19:32:12 +01:00
log.js feat($log): add $log.debug() 2013-01-17 16:47:39 -08:00
parse.js fix($parse): move global getter out of parse.js 2013-06-24 20:46:32 -07:00
q.js docs($q): fix a few issues 2013-06-13 22:42:10 +01:00
rootElement.js docs(*): simplify doc urls 2012-06-12 00:10:18 -07:00
rootScope.js chore(minErr): replace ngError with minErr 2013-06-17 13:29:30 -07:00
sniffer.js feat($sniffer): Add support for supportsAnimations flag for detecting CSS Animations browser support 2013-05-08 15:40:37 -07:00
timeout.js docs($timeout): minor cleanup 2013-05-14 20:47:39 +01:00
window.js docs($window): fix example 2013-05-09 12:47:41 +01:00