【问题标题】:Angular | Reference error: championURL is not defined角 |参考错误:未定义 ChampionURL
【发布时间】:2015-11-20 09:33:57
【问题描述】:

我对 AngularJS 非常(非常)陌生,所以如果你能解释一下有助于加载的解决方案和建议!

我正在尝试创建一个传递参数的指令——在我的例子中是 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
};
});

任何我出错的想法,

谢谢,

基兰

【问题讨论】:

    标签: angularjs api get angularjs-scope


    【解决方案1】:

    我会把src绑定到模板上,在http请求返回时的链接函数中,更新绑定的变量:

    Understanding AngularJS ng-src

    没有测试过,但我认为是这样的

    【讨论】:

      【解决方案2】:

      改变

      发件人:

      template: championURL
      

      收件人:

      template: $scope.championURL
      

      【讨论】:

      • 返回$scope is not defined
      • 指令定义中没有$scope,只有在链接函数中。
      • "想要修改 DOM 的指令通常使用链接选项来注册 DOM 侦听器以及更新 DOM。它在模板被克隆后执行,是放置指令逻辑的地方。 "所以首先你的模板会被加载,然后是链接函数。
      • @ÁgostonSzékely 我明白你的意思谢谢,任何关于如何看待这个问题的好方法的想法,正如我所说我是 Angular 的新手
      猜你喜欢
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多