2015-11-20 4 views
0

Я очень (очень) новичок в AngularJS, поэтому, если вы можете объяснить, какие решения и предложения помогут вам загружать грузы!Угловая | Исходная ошибка: championURL не определен

Я пытаюсь сделать директиву, которая передается параметр - в моем случае championID, чтобы затем использовать для вызова API.

Вызов API работает и возвращает правильные данные, единственная проблема, с которой я сталкиваюсь, - это попытаться поместить это в шаблон и вернуть его.

Сообщение об ошибке я получаю

Reference error: championURL is not defined

моя директива ниже:

.directive('championImage', function() { 
    return { 
    restrict: 'E', 
     link: function($scope, iElm, iAttrs, controller) { 
     $scope.championId = iAttrs.championId; 
     $http.get('https://global.api.pvp.net/api/lol/static-data/euw/v1.2/champion/'+ championId +'?champData=image&api_key=<removed for stack overflow>').success(function(data){ 
     $scope.championURL = '<img src="http://ddragon.leagueoflegends.com/cdn/5.22.3/img/champion/'+ data.image.sprite +'"/>'; 
     }).error(function(data){ 
     console.warn('Incorrect username entered or max queries hit'); 
     }); 
    }, 
    template: championURL 
}; 
}); 

Любые идеи, где я неправильно,

Спасибо,

Kieran

ответ

1

Я хотел бы связать ГКЗ к шаблону, а в функции связи при возврате запроса HTTP, обновить переплетены переменную :

Understanding AngularJS ng-src

Havent проверен, но я думаю, что это так

0

Изменить

От:

template: championURL 

To:

template: $scope.championURL 
+0

это возвращает '$ scope не определено' – Kieranmv95

+0

У вас нет определения $ scope в определении директивы, только внутри функции ссылки. –

+0

«Директивы, которые хотят изменить DOM, как правило, используют ссылку для регистрации DOM-прослушивателей, а также для обновления DOM. Он выполняется после клонирования шаблона и где будет установлена ​​директивная логика». Итак, сначала будет загружен ваш шаблон, а затем функция связи. –

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