aboutsummaryrefslogtreecommitdiffstats
path: root/src/Browser.js
diff options
context:
space:
mode:
authorVojta Jina2010-11-15 01:10:16 +0000
committerMisko Hevery2010-11-15 21:55:37 -0800
commitcc749760fd59418433de5a055d1ca401f7500444 (patch)
treea6bc273b68b10515b9e00bc0b166c46d88748033 /src/Browser.js
parentb467a50bc75b7f4c0d9bcee521387eda460337bf (diff)
downloadangular.js-cc749760fd59418433de5a055d1ca401f7500444.tar.bz2
Added basic Services, which support @memberOf and @methodOf
Diffstat (limited to 'src/Browser.js')
-rw-r--r--src/Browser.js155
1 files changed, 130 insertions, 25 deletions
diff --git a/src/Browser.js b/src/Browser.js
index bf9b5483..2608f160 100644
--- a/src/Browser.js
+++ b/src/Browser.js
@@ -19,7 +19,20 @@ function Browser(location, document, head, XHR, $log) {
var outstandingRequestCount = 0;
var outstandingRequestCallbacks = [];
- self.xhr = function(method, url, post, callback){
+ /**
+ * @ngdoc method
+ * @name angular.service.$browser#xhr
+ * @methodOf angular.service.$browser
+ *
+ * @param {string} method Requested method (get|post|put|delete|head|json)
+ * @param {string} url Requested url
+ * @param {string=} post Post data to send
+ * @param {function(number, string)} callback Function that will be called on response
+ *
+ * @description
+ * Send ajax request
+ */
+ self.xhr = function(method, url, post, callback) {
if (isFunction(post)) {
callback = post;
post = _null;
@@ -63,7 +76,14 @@ function Browser(location, document, head, XHR, $log) {
}
};
- self.notifyWhenNoOutstandingRequests = function(callback){
+ /**
+ * @ngdoc method
+ * @name angular.service.$browser#notifyWhenNoOutstandingRequests
+ * @methodOf angular.service.$browser
+ *
+ * @param {function} callback Function that will be called when no outstanding request
+ */
+ self.notifyWhenNoOutstandingRequests = function(callback) {
if (outstandingRequestCount === 0) {
callback();
} else {
@@ -75,27 +95,48 @@ function Browser(location, document, head, XHR, $log) {
// Poll Watcher API
//////////////////////////////////////////////////////////////
var pollFns = [];
- function poll(){
+
+ /**
+ * @ngdoc method
+ * @name angular.service.$browser#poll
+ * @methodOf angular.service.$browser
+ */
+ self.poll = function() {
foreach(pollFns, function(pollFn){ pollFn(); });
- }
- self.poll = poll;
+ };
/**
+ * @ngdoc method
+ * @name angular.service.$browser#addPollFn
+ * @methodOf angular.service.$browser
+ *
+ * @param {function} fn Poll function to add
+ *
+ * @description
* Adds a function to the list of functions that poller periodically executes
- * @return {Function} the added function
+ *
+ * @returns {function} the added function
*/
- self.addPollFn = function(/**Function*/fn){
+ self.addPollFn = function(fn) {
pollFns.push(fn);
return fn;
};
/**
- * Configures the poller to run in the specified intervals, using the specified setTimeout fn and
- * kicks it off.
+ * @ngdoc method
+ * @name angular.service.$browser#startPoller
+ * @methodOf angular.service.$browser
+ *
+ * @param {number} interval How often should browser call poll functions (ms)
+ * @param {function} setTimeout
+ *
+ * @description
+ * Configures the poller to run in the specified intervals, using the specified
+ * setTimeout fn and kicks it off.
*/
- self.startPoller = function(/**number*/interval, /**Function*/setTimeout){
+ self.startPoller = function(interval, setTimeout) {
(function check(){
- poll();
+ self.poll();
setTimeout(check, interval);
})();
};
@@ -103,15 +144,37 @@ function Browser(location, document, head, XHR, $log) {
//////////////////////////////////////////////////////////////
// URL API
//////////////////////////////////////////////////////////////
+
+ /**
+ * @ngdoc method
+ * @name angular.service.$browser#setUrl
+ * @methodOf angular.service.$browser
+ *
+ * @param {string} url New url
+ *
+ * @description
+ * Sets browser's url
+ */
self.setUrl = function(url) {
var existingURL = location.href;
if (!existingURL.match(/#/)) existingURL += '#';
if (!url.match(/#/)) url += '#';
location.href = url;
};
- self.getUrl = function() {
+
+ /**
+ * @ngdoc method
+ * @name angular.service.$browser#getUrl
+ * @methodOf angular.service.$browser
+ *
+ * @description
+ * Get current browser's url
+ *
+ * @returns {string} Browser's url
+ */
+ self.getUrl = function() {
return location.href;
- };
+ };
//////////////////////////////////////////////////////////////
// Cookies API
@@ -121,19 +184,27 @@ function Browser(location, document, head, XHR, $log) {
var lastCookieString = '';
/**
- * The cookies method provides a 'private' low level access to browser cookies. It is not meant to
- * be used directly, use the $cookie service instead.
+ * @ngdoc method
+ * @name angular.service.$browser#cookies
+ * @methodOf angular.service.$browser
+ *
+ * @param {string=} name Cookie name
+ * @param {string=} value Cokkie value
+ *
+ * @description
+ * The cookies method provides a 'private' low level access to browser cookies.
+ * It is not meant to be used directly, use the $cookie service instead.
*
* The return values vary depending on the arguments that the method was called with as follows:
- * <ul><li>
- * cookies() -> hash of all cookies, this is NOT a copy of the internal state, so do not modify it
- * </li><li>
- * cookies(name, value) -> set name to value, if value is undefined delete the cookie
- * </li><li>
- * cookies(name) -> the same as (name, undefined) == DELETES (no one calls it right now that way)
- * </li></ul>
+ * <ul>
+ * <li>cookies() -> hash of all cookies, this is NOT a copy of the internal state, so do not modify it</li>
+ * <li>cookies(name, value) -> set name to value, if value is undefined delete the cookie</li>
+ * <li>cookies(name) -> the same as (name, undefined) == DELETES (no one calls it right now that way)</li>
+ * </ul>
+ *
+ * @returns {Object} Hash of all cookies (if called without any parameter)
*/
- self.cookies = function (/**string*/name, /**string*/value){
+ self.cookies = function (name, value) {
var cookieLength, cookieArray, i, keyValue;
if (name) {
@@ -175,7 +246,27 @@ function Browser(location, document, head, XHR, $log) {
// Misc API
//////////////////////////////////////////////////////////////
var hoverListener = noop;
+
+ /**
+ * @ngdoc method
+ * @name angular.service.$browser#hover
+ * @methodOf angular.service.$browser
+ *
+ * @param {function(Object, boolean)} listener
+ *
+ * @description
+ * Set hover listener - function that will be called when hover event occurs.
+ */
self.hover = function(listener) { hoverListener = listener; };
+
+ /**
+ * @ngdoc method
+ * @name angular.service.$browser#bind
+ * @methodOf angular.service.$browser
+ *
+ * @description
+ * Register hover function to real browser
+ */
self.bind = function() {
document.bind("mouseover", function(event){
hoverListener(jqLite(msie ? event.srcElement : event.target), true);
@@ -189,9 +280,15 @@ function Browser(location, document, head, XHR, $log) {
/**
+ * @ngdoc method
+ * @name angular.service.$browser#addCss
+ * @methodOf angular.service.$browser
+ *
+ * @param {string} url Url to css file
+ * @description
* Adds a stylesheet tag to the head.
*/
- self.addCss = function(/**string*/url) {
+ self.addCss = function(url) {
var link = jqLite(rawDocument.createElement('link'));
link.attr('rel', 'stylesheet');
link.attr('type', 'text/css');
@@ -201,9 +298,17 @@ function Browser(location, document, head, XHR, $log) {
/**
+ * @ngdoc method
+ * @name angular.service.$browser#addJs
+ * @methodOf angular.service.$browser
+ *
+ * @param {string} url Url to js file
+ * @param {string=} dom_id Optional id for the script tag
+ *
+ * @description
* Adds a script tag to the head.
*/
- self.addJs = function(/**string*/url, /**string*/dom_id) {
+ self.addJs = function(url, dom_id) {
var script = jqLite(rawDocument.createElement('script'));
script.attr('type', 'text/javascript');
script.attr('src', url);