2014-12-29 3 views
6

Ciao Sono ancora nuovo in AngularJs e mi chiedevo se fosse possibile.AngularJS passa un nome variabile di variabile come parametro di funzione

Sul mio controller, sto provando a creare una funzione che accetta un parametro stringa che indicherà quale $ http.get chiamare. Vorrei quindi assegnare tale parametro nel mio ambito. Per esempio

$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; 
    }); 
} 

dove XXXXXXX = partialtype == "conto" o "contatto"

quindi il risultato sarebbe posto e conservato sotto $ scope.account e/o $ scope.contact.

È possibile o esiste un modo migliore per farlo?

+0

$ portata [partialtype] – tymeJV

+0

Questo funziona totalmente, anche se potrebbe non essere la procedura migliore per utilizzare questo metodo, nella nostra SPA questo è ciò di cui abbiamo bisogno. Non so a caldo per contrassegnare questo come una risposta poiché questo è un commento. – Justin

+0

Ho inviato una risposta rapida - era su cellulare nel momento in cui ho commentato. – tymeJV

risposta

7

Dal $scope è solo un oggetto con proprietà, è possibile utilizzare la staffa notazione:

$scope[partialtype]; 
0

Anche se sembra possibile, suggerirei di creare un servizio Angolare personalizzato che incapsuli la logica per le richieste http. È quindi possibile includere il servizio nel controller e accedere alle funzioni del servizio.

Date un'occhiata alla documentazione angolare per la creazione di servizi personalizzati qui: Angular Documentation for Services