Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Service Portal, $location. Works on page reload only. Not when URL chanes

amwebaz
Kilo Expert
I am working in the Service Portal. The script below works on page reload or refresh. 
However with I click a link on the page that changes the url, for instance like on a
single page application. The script does not fire. Can this be done in AngularJS?
If so how can that be done? Or should this JavaScript be done differently?
Thanks in advance for you wisdom and help.

<script
type="text/javascript"> $(document).ready(function () { if(window.location.href.indexOf("table=sc_cat_item") > -1) { alert("your url contains the name table=sc_cat_item"); } }); </script>
1 ACCEPTED SOLUTION

I had mentioned this in the other post as well, but you don't need the ( at the beginning of the client controller or the )(); at the end of it. those are probably causing your issues.

View solution in original post

13 REPLIES 13

So your code exactly matches mine? And did you put it in the header or footer widget?

Maybe I don't know what you mean when you say "header widget"?

I am kind of new to the Service Portal.

Okay I created a footer widget? And inserted the code following code:

 

(function($location) {
/* widget controller */
var c = this;

var checkLocation = $(window).bind('load', function() {
var loc = $location.search();
if (loc == 'sc_cat_item') {
alert("works");
}
})

$scope.$on('$locationChangeSuccess',function() {
checkLocation();
});

checkLocation();
})();

Did it work for you?

No this does not work? Still researching