aboutsummaryrefslogtreecommitdiffstats
path: root/src/services.js
diff options
context:
space:
mode:
authorMisko Hevery2010-03-31 17:56:16 -0700
committerMisko Hevery2010-03-31 18:18:10 -0700
commit11a6431f8926c557f3c58408dacc98466e76cde1 (patch)
treeab36304fd373d0947ca36c577e25ca87a1c894af /src/services.js
parent35a91085004e31f786df1e0011bc26ed0142ab4d (diff)
downloadangular.js-11a6431f8926c557f3c58408dacc98466e76cde1.tar.bz2
started to add services
Diffstat (limited to 'src/services.js')
-rw-r--r--src/services.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/services.js b/src/services.js
new file mode 100644
index 00000000..14c71363
--- /dev/null
+++ b/src/services.js
@@ -0,0 +1,34 @@
+angularService("$window", bind(window, identity, window));
+
+angularService("$anchor", function(){
+ var scope = this;
+ function anchor(url){
+ if (isDefined(url)) {
+ if (url.charAt(0) == '#') url = url.substr(1);
+ var pathQuery = url.split('?');
+ anchor.path = decodeURIComponent(pathQuery[0]);
+ anchor.param = {};
+ foreach((pathQuery[1] || "").split('&'), function(keyValue){
+ if (keyValue) {
+ var parts = keyValue.split('=');
+ var key = decodeURIComponent(parts[0]);
+ var value = parts[1];
+ if (!value) value = true;
+ anchor.param[key] = decodeURIComponent(value);
+ }
+ });
+ }
+ var params = [];
+ foreach(anchor.param, function(value, key){
+ params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));
+ });
+ return (anchor.path ? anchor.path : '') + (params.length ? '?' + params.join('&') : '');
+ };
+ this.$config.location.watch(function(url){
+ anchor(url);
+ });
+ this.$onEval(PRIORITY_LAST, function(){
+ scope.$config.location.set(anchor());
+ });
+ return anchor;
+});