2016-03-22 2 views
0

Neu zu Angular, ich greife auf Daten von db über $ http-Dienste und möchte Werte in einem Textarea Inhalt ersetzen Wörter in der db gefunden.AngularJS: Ersetzen von Text in einer foreach-Schleife

app.controller('myController', function($scope, $http) { 
    $scope.translate = function() { 
      $http 
      .get('translate.php') 
      .then(function(data){ 
       var alldata = data.data; 
       angular.forEach(alldata, function(v,k) { 
         $scope.message = alldata.replace("\\b"+v.one+"\\b/gi",v.two); 
       }); 
      }, function(data) { 
       // error handling 
     }); 
    }; 
}) 

Textarea hat ng-model von "Nachricht". Es funktioniert nicht und ich erhalte eine Fehlermeldung:

TypeError: alldata.replace is not a function 
+0

Können Sie bestätigen, dass alldata eine Zeichenfolge ist? – user2263572

+0

@ user2263572 ahh, alldata ist ein Array. Ich habe es in $ scope.message.replace geändert, aber jetzt bekomme ich 'TypeError: Kann die Eigenschaft 'replace' von 'undefined' Fehler nicht lesen ... –

Antwort

0

dies versuchen,

app.controller('myController', function($scope, $http) { 
    $scope.message = ''; 
    $scope.translate = function() { 
      $http 
      .get('translate.php') 
      .then(function(data){ 
       var alldata = data.data; 
       angular.forEach(alldata, function(v,k) { 
         $scope.message = $scope.message.toString().replace("\\b"+v.one+"\\b/gi",v.two); 
       }); 
      }, function(data) { 
       // error handling 
     }); 
    }; 
}) 
+0

' TypeError: Kann die Eigenschaft 'toString' of undefined' Fehler nicht lesen. Scheint, $ scope.message nicht zu erkennen? –

+0

Ich verstehe. ok Ich bearbeite die Antwort ein wenig. –

+0

möchten Sie vielleicht sicherstellen, dass Ihre $ scope.message eine Schnur aus der Fledermaus ist. bearbeitet die Antwort. –