Я пытаюсь получить некоторую информацию с сервера на html-странице приложения AngularJS. Однако сам метод работает нормально, когда я вызываю функцию в своем html-файле с помощью $scope. Я получаю ошибку $rootScope:infidg.
Метод в контроллере:
$scope.getTranslation = function(){
$http.get('https://producthero.com/index.php?option=com_hero&task=language.translate&s=SEARCH')
.then(
function (response) {
return response.data.translation;
}
);
};
Вызовите html-файл с помощью ng-app и ng-controller:
<div ng-controller="Product">
<span>{{getTranslation()}}</span>
</div>
Я использую этот способ перевода, потому что начальный бэкенд сайта работает на Joomla, я знаю i18n, но мы не можем использовать его здесь.
Ошибка:
http://errors.angularjs.org/1.6.4/$rootScope/infdig?p0=10&p1=%5B%5D
angular.min.js:123 Error: [$rootScope:infdig] <http://errors.angularjs.org/1.6.4/$rootScope/infdig?p0=10&p1=%5B%5D> at angular.min.js:6 at m.$digest (angular.min.js:147) at m.$apply (angular.min.js:149) at angular.min.js:21 at Object.invoke (angular.min.js:44) at c (angular.min.js:21) at Sc (angular.min.js:22) at ue (angular.min.js:20) at HTMLDocument.<anonymous> (angular.min.js:331) at i (jquery.min.js:2)
Я надеюсь, что это просто я глуп и что мне чего-то не хватает, чтобы сделать возможными такие прямые звонки с http!
РЕДАКТИРОВАТЬ:
Мое решение моей проблемы с переводом следующее (спасибо @Aleksey Solovey за ответ):
Метод контроллера
$scope.translations = {};
$scope.getTranslation = function(string){
$http.get('https://producthero.com/index.php?option=com_hero&task=language.translate&s=' + string)
.then(
function (response) {
$scope.translations[string] = response.data.translation;
});
};
Просмотр звонка
<div ng-app="products">
<div ng-controller="Product">
<span ng-init="getTranslation('SEARCH')">{{translations.SEARCH}}</span>
</div>
</div>
ng-init
можно злоупотреблять, добавляя ненужное количество логики в ваши шаблоны. Есть только несколько подходящих вариантов использованияngInit
. См. Справочник по API AngularJS ng-init. - person georgeawg   schedule 12.07.2018