AngularJS: замена текста в цикле foreach

0

New to Angular, я получаю доступ к данным из db через службы $ http и хочу заменить значения в текстовом содержимом, соответствующем словам, найденным в db.

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 имеет ng-model "сообщения". Он не работает, и я получаю сообщение об ошибке:

TypeError: alldata.replace is not a function
  • 0
    Можете ли вы подтвердить, что alldata является строкой?
  • 0
    @ user2263572 ааа, все данные - это массив. я изменил его на $ scope.message.replace, но теперь я получаю TypeError: Cannot read property 'replace' of undefined ошибки ...
Теги:
foreach
http
service

1 ответ

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: Cannot read property 'toString' of undefined ошибкой. Похоже, он не распознает $ scope.message?
  • 0
    Понимаю. хорошо, я немного отредактировал ответ.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню