2016-06-01 2 views
0

все. Я новый для angularJS и у меня есть вопрос. Я хочу получить имя StringHP функцией getStringbyName (StringHpByCode).

<div> {{getStringbyName(StringHpByCode)}} </div> 
    $scope.StringHpByCode='A11111'; 
    $scope.getStringbyName=function(StringHP) 
    { 
     AjaxHelper(HocPhanUri +"?stringhp="+StringHP, 'GET').then(function (response) { 
     return response.data.name; 
     } 
    } 
    function AjaxHelper(uri, method, data) { 
     return $http({ 
      method: method, 
      url: uri, 
      data: data ? JSON.stringify(data) : null 
     }) 
    } 

Но мой браузер показать ошибку:

angular.js:13424 Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting! Watchers fired in the last 5 iterations: [].

, как решить это.? Извините, мой плохой английский.

+1

Покажите свою AjaxHelper –

+0

функцию AjaxHelper (Ури метод, данные) { возвращение $ HTTP ({ метод: метод, URL: Ури данные: данные JSON.stringify (данные): нулевой }) } – john

+0

Покажите также свой контроллер, где находится getChuoibyName. –

ответ

0

Ввод вызова функции внутри внутри {{}} будет вызывать его много раз, когда ваша мышь наводится на него, поэтому вы делаете несколько бесполезных $ http-вызовов для одних и тех же данных (или, что еще хуже, мышь больше, чем звонки и больше это требует времени).

Вы можете вызвать эту функцию в другом событии, например, при нажатии кнопки или как это?

<div> {{stringResult}} </div> 


$scope.StringHpByCode='A11111'; 
$scope.stringResult = null ; 
$scope.getStringbyName=function(StringHP) 
{ 
    AjaxHelper(HocPhanUri +"?stringhp="+StringHP, 'GET').then(function (response) { 
     $scope.stringResult = response.data.name; 
    } 
} 
function AjaxHelper(uri, method, data) { 
    return $http({ 
     method: method, 
     url: uri, 
     data: data ? JSON.stringify(data) : null 
    }) 
} 
$scope.getStringbyName($scope.StringHpByCode) ; 
+0

да, спасибо. Мне нужно отображать только {{getStringbyName (StringHpByCode)}}. как отобразить его? – john

Смежные вопросы