The CreatorCon Call for Content is officially open! Get started here.

How to get url parameter value in the Client Script Service Portal?

joanmarisse
Tera Expert

How to get url parameter value in the Client Script Service Portal?

Please advise.

Thanks!

1 ACCEPTED SOLUTION

indu19
Mega Expert

Hi,



You can add this line to the server side code:


data.parameter_value = $sp.getParameter("parameter_name");



and access the same in client using :



($scope.data.parameter_value);



Please make sure $scope is present in your function declaration.



Regards,


Indumathi


View solution in original post

4 REPLIES 4

indu19
Mega Expert

Hi,



You can add this line to the server side code:


data.parameter_value = $sp.getParameter("parameter_name");



and access the same in client using :



($scope.data.parameter_value);



Please make sure $scope is present in your function declaration.



Regards,


Indumathi


Hi Indumathi,



Thanks a lot.


This had solved my problem



Best regards,


Joan


Mujtaba Amin Bh
Mega Guru

Use $location. For more info check AngularJS .


Tim Woodruff
Mega Guru

Now in Istanbul (not sure if it's a recent patch or what) you can apparently just use this.location.href to get the current page's URL in the service portal, via catalog client script.



For example:



var yourParamValue = getAllUrlParams(this.location.href)['YOUR_PARAM_NAME'];

/**
* Get the values of each URI param as properties of an object (name-value pairs).
* @param url
* @returns {{}}
* @example - In the URL www.google.com/page?urip=pickles&otheruriparam=bananas, you could use getAllUrlParams().urip to get "pickles".
*/
function getAllUrlParams(url) {


   


    // get query string from url (optional) or window
    var queryString = url ? url.split('?')[1] : window.location.search.slice(1);
   
    // we'll store the parameters here
    var obj = {};
   
    // if query string exists
    if (queryString) {


   


    // stuff after # is not part of query string, so get rid of it
    queryString = queryString.split('#')[0];
   
    // split our query string into its component parts
    var arr = queryString.split('&');
   
    for (var i = 0; i < arr.length; i++) {


    // separate the keys and the values
    var a = arr[i].split('=');
   
    // in case params look like: list[]=thing1&list[]=thing2
    var paramNum = undefined;
    var paramName = a[0].replace(/\[\d*\]/, function(v) {


  paramNum = v.slice(1, -1);
    return '';
    });
   
    // set parameter value (use 'true' if empty)
    var paramValue = typeof(a[1]) === 'undefined' ? true : a[1];
   
    // (optional) keep case consistent
    paramName = paramName.toLowerCase();
    paramValue = paramValue.toLowerCase();
   
    // if parameter name already exists
    if (obj[paramName]) {


    // convert value to array (if still string)
    if (typeof obj[paramName] === 'string') {


  obj[paramName] = [obj[paramName]];
    }


    // if no array index number specified...
    if (typeof paramNum === 'undefined') {


    // put the value on the end of the array
    obj[paramName].push(paramValue);
    }


    // if array index number specified...
    else {


    // put the value at that index number
    obj[paramName][paramNum] = paramValue;
    }


  }


    // if param name doesn't exist yet, set it
    else {


  obj[paramName] = paramValue;
    }


  }


  }


   


    return obj;
}