2017-02-16 5 views
0
$rootScope.getPricesData = function (typ) { 
     var data = { 
      type: typ 
     } 
     $http({ 
      url: '...', 
      method: 'POST', 
      data: data 
     }).then(function (res) { 
      $rootScope.pricesData = res.data; 
      console.log(res); 
     }) 
    } 

Und seine Werke gut und htmlWie kann der gleiche Bereich in zwei Divs mit unterschiedlichen Daten zur Verfügung gestellt werden?

<div ng-init="getPricesData('template')">info template</div> 
<div ng-init="getPricesData('subscription_month')">info subscription_month</div> 

und ich sehe in diesen beiden divs Informationen über Abonnement (nicht tempate und Abonnement) in Console ich sehe diese Daten korrekt und die Funktion wurde zweimal genannt (für Vorlage und Abonnement).

Ich denke, der Umfang überschreibt (aber ich weiß nicht, wie das beheben) Bitte um Hilfe

+0

, wenn Sie den Controller im Router und auch in der Steuerung erklärt wird zweimal aufgerufen wird ... entfernen jeder von ihnen – Gopinath

+1

jemals nie eine schlechte Praxis mit dem rootscope versuchen das ist –

+0

Stattdessen können Sie Gebrauch machen einer Richtlinie –

Antwort

1
  • Sie Javascript verwenden können ternary operator das Szenario zu behandeln.

    $rootScope.getPricesData = function (typ) { 
        var data = { 
         type: typ 
        } 
        $http({ 
         url: '...', 
         method: 'POST', 
         data: data 
        }).then(function (res) { 
         if(typ == 'template') ? $scope.templatePricesData = res.data : $scope.subscriptionPricesData = res.data; 
        }) 
    } 
    
  • Sie können ein leeres Objekt erstellen und dann in die jeweiligen Eigenschaften eines Objekts die Antwortdaten auf Erfolgsantwort zuweisen.

    $scope.resData = {}; 
    $rootScope.getPricesData = function (typ) { 
        var data = { 
         type: typ 
        } 
        $http({ 
         url: '...', 
         method: 'POST', 
         data: data 
        }).then(function (res) { 
         $scope.resData[typ] = res.data; 
        }) 
    } 
    
+0

vielen Dank, – Kaker

0

Ich denke, das wird immer außer Kraft setzen. Eine mögliche Lösung ist machen Ihre $ rootScope ein Objekt so kann es sein, wie $ rootScope.pricesData [typ]

Verwandte Themen