2016-12-05 87 views
0

我試圖做的是,當單擊圖像時,我發送一個包含信息的數組放入函數'test',將它與來自另一個數據庫的值進行比較,然後我試圖返回正確的信息並顯示它。代碼:單擊圖像,然後顯示來自數據庫的信息

<div data-ng-repeat="hero in heroes | filter:search | orderBy:'id'"> 
    <div class="wrap"> 
    <img class="img-rounded" ng-src="images/heroes/{{hero.url}}_full.png" ng-click="test(hero.abilities)"> 
    <div class="tooltip"> 
     <p class="fat">{{hero.localizedName}}</p> 
    </div> 
    </div> 
</div>      
<div data-ng-repeat="ability in test| orderBy:'id'"> 
    {{ability.localizedName}} //Should show the information of the selected hero 
</div> 

和腳本,

$scope.test = function(text){ 
      var newSize = text.length; 
      var temp = []; 

      for(i = 0; i < newSize; i++) 
      { 
       for(j = 0; j < $scope.abilities.length; j++) 
       { 
        if($scope.abilities[j].id == text[i]) 
        { 
        temp[i] = $scope.abilities[j]; 
        } 
       } 
      } 
      //$scope.test = temp; 
      console.log(temp); 
     } 

當我控制檯記錄了溫度,我得到我想要的價值,但我不能獲取值從機能恢復。

控制檯只給我的錯誤消息說

「測試」未聲明

,我已經搜索該錯誤消息,但我似乎並沒有被能夠找到我正在尋找的答案。

在此先感謝!

+0

爲$ scope.test在同一個控制器作爲$ scope.heros? –

+0

$ scope.heroes位於同一個控制器中,是的! –

+0

你可以發佈你的完整控制器嗎? –

回答

0

你試圖重複test

<div data-ng-repeat="ability in test| orderBy:'id'"> 

test是一個功能可按。

test()函數結束,保存temp$scope,例如:

$scope.arr = temp; 

和更改模板重複arr

<div data-ng-repeat="ability in arr| orderBy:'id'"> 
0

完整的控制器(相關代碼):

function AppController($filter, $log, $scope, dotaService, abilitiesService, itemsService) 
     (..) 
    $scope.test = function(text){ 
       var newSize = text.length; 
       var temp = []; 

       for(i = 0; i < newSize; i++) 
       { 
        for(j = 0; j < $scope.abilities.length; j++) 
        { 
         if($scope.abilities[j].id == text[i]) 
         { 
         temp[i] = $scope.abilities[j]; 
         } 
        } 
       } 
       //$scope.test = temp; 
       console.log(temp); 

      //Heroes 
      var promise = dotaService.getHeroes(); 
      promise.then(function (data) 
      { 
       $scope.heroes = data.data; 
      }) 
      //Abilites 
      var promise2 = abilitiesService.getAbilities(); 
      promise2.then(function (data) 
      { 
       $scope.abilities = data.data; 
      });   
     } 
相關問題