diff options
Diffstat (limited to 'src/ng')
| -rw-r--r-- | src/ng/location.js | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/src/ng/location.js b/src/ng/location.js index 9ec6300f..e99137d5 100644 --- a/src/ng/location.js +++ b/src/ng/location.js @@ -349,24 +349,17 @@ LocationUrl.prototype = { * @return {string} search */ search: function(search, paramValue) { - switch (arguments.length) { - case 0: - return this.$$search; - case 1: - if (isString(search)) { - this.$$search = parseKeyValue(search); - } else if (isObject(search)) { - this.$$search = search; - } else { - throw $locationMinErr('wpt', 'First parameter of function must be string or an object.'); - } - break; - default: - if (paramValue == undefined || paramValue == null) { - delete this.$$search[search]; - } else { - this.$$search[search] = paramValue; - } + if (isUndefined(search)) + return this.$$search; + + if (isDefined(paramValue)) { + if (paramValue === null) { + delete this.$$search[search]; + } else { + this.$$search[search] = paramValue; + } + } else { + this.$$search = isString(search) ? parseKeyValue(search) : search; } this.$$compose(); |
