2016-03-22 70 views
0

新增功能Angular,我通過$ http服務從數據庫訪問數據,並且想要替換文本區域內容中匹配數據庫中找到的單詞的值。AngularJS:替換foreach循環中的文本

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有「message」的ng-model。它不工作,我得到一個錯誤:

TypeError: alldata.replace is not a function 
+0

你能否證實ALLDATA是一個字符串? – user2263572

+0

@ user2263572 ahh,alldata是一個數組。我把它改爲$ scope.message.replace,但現在我得到了'TypeError:無法讀取'未定義'錯誤的屬性'替換'... –

回答

0

試試這個,

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:無法讀取未定義錯誤的屬性'toString'。看起來它不認可$ scope.message? –

+0

我明白了。好的,我編輯答案一點。 –

+0

你可能想要確保你的$ scope.message是一個字符串。編輯答案。 –