Justin
Justin

Reputation: 137

AngularJS pass a scope variable name as a function parameter

Hi I'm still new to AngularJs and was wondering if this was possible.

On my controller, I'm trying to create a function that takes a string parameter that will indicate which $http.get to call. I would then like to assign that parameter in my scope. For example

$scope.getpartial = function(partialtype) {
    var promise = "";
    switch(partialtype) {
        case "account":
             promise = $http.get("account url here");
             break;
        case "contact":
             promise = $http.get("contact url here");
             break;
    }
    promise.then(function(payload) {
        $scope.XXXXXXX = payload.data;
    });
}

Where XXXXXXX = partialtype == "account" or "contact"

so the result would be placed and stored under $scope.account and/or $scope.contact.

Is this possible or is there a better way to do this?

Upvotes: 6

Views: 3751

Answers (2)

tymeJV
tymeJV

Reputation: 104775

Since $scope is just an object with properties, you can use bracket notation:

$scope[partialtype];

Upvotes: 7

wmock
wmock

Reputation: 5492

While this seems like it is possible, I would suggest creating a custom Angular service that encapsulates your logic for http requests. You could then include your service in your controller, and access the functions in your service.

Take a look at the Angular documentation for creating custom services here: Angular Documentation for Services

Upvotes: 0

Related Questions