Wednesday, June 5, 2024
 Popular · Latest · Hot · Upcoming
105
rated 0 times [  110] [ 5]  / answers: 1 / hits: 21271  / 11 Years ago, mon, april 29, 2013, 12:00:00

I'm using angular in an application which is, basically, a table with search results.
Access to this table can be achieved via an url like http://myapp/?client=clientName



An angular controller is instantiated for the table, among other things, for opening a modal dialog (also angular-based with bootstrap-ui) with the row details.



These row details are brought via a service which has some common functionality for both controllers: the one for the table and the one for the modal.



Now, within this service, I have the following snippet to retrieve:



service.fetchRelatedElements = function(element, cb) {
var url = '/search.json?results=20&type='+element.type;
if ($location.search()['client']) {
url += '&client=' + $location.search('client');
}
return doFetch(url, cb); // actual server json GET
};


The goal is to know if the table already has this specific client parameter set as a filter.



If I put a breakpoint at the beginning of this call, I see that $location.absUrl() returns the current browser URL (which, in my case, has the client parameter I'm interested in).



But $location.search() returns an empty object.



I am injecting the $location service within my service with the defaults (that is, not configuring it by a .config() call).
And, as doc says:




The $location service parses the URL in the browser address bar (based
on the window.location) and makes the URL available to your
application.




Am I missing something? Shouldn't the URL, at this point, be parsed?



Thanks!






UPDATE: I've managed to make it work. The problem was exactly that I wasn't configuring at all the service. I did so because I assumed that in that way it would take defaults, but it seems that that's not the way it works.


More From » service

 Answers
15

I was having the same problem before I configured $locationProvider in my app's module config:



appModule.config(['$locationProvider', function($locationProvider) {
$locationProvider.html5Mode(true);
}]);

[#78524] Sunday, April 28, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
hasanb

Total Points: 321
Total Questions: 102
Total Answers: 96

Location: Burkina Faso
Member since Fri, Sep 4, 2020
4 Years ago
;