2016-03-22 26 views
-1

MySQL veritabanım var ve Node JS kullanarak veri alıyorum. Canlı arama için AngularJS'u da kullanıyorum. düğümlü sunucu dosyasınınMySQL kullanarak dinamik verileri Javascript kullanarak bul

<div class="songlist" ng-controller='another_control'> 
      <table id="songlistTableR" ng-app='test_table' ng-controller='main_control'> 
      <tr><th>Название</th><th>Ссылка</th></tr>  
      <tr ng-repeat="data in loaded | filter:search"> 
       <td><i class="fa fa-plus"></i>{{data.song_name}}</td> 
       <td><a href="{{data.link}}" target='_blank'>Youtube</a></td>  
      </tr> 
      </table>  
     </div> 

Bölüm:

app.get('/load',function(req,res){ 

    connection.query("SELECT * FROM test_table",function(err,rows,fields){ 
     if(err) throw err;  
     res.end(JSON.stringify(rows));    
    }); 
}); 

Ve JS 'çekirdek' file:

app.controller('main_control',function($scope,$http){ 
    load(); 
    function load(){ 
     $http.get("http://localhost:7001/load").success(function(data){ 
      $scope.loaded=data; 
     }); 
    } 
}); 

Soru: Ben olması gerekir İşte benim HTML kodu parçasıdır Başka bir JS dosyasındaki veritabanından bu verilere erişim. Örneğin, alert(data[1].song_name)'u istiyorum. Nasıl yapılır?

UPD: HTML kodunun bir bölümünü güncelledim, ancak aynı zamanda çalışmıyor.

+0

Sorunuzu çok anlayamadım, detaylandırır mısınız? –

cevap

0
Başka içinde $ rootScope.loaded

sonra $ rootScope enjekte arayarak başka yönerge, denetleyici veya hizmetten bu verilere erişebilir

app.controller('main_control',function($scope,$http, $rootScope){ 
    load(); 
    function load(){ 
     $http.get("http://localhost:7001/load").success(function(data){ 
      $rootScope.loaded=data; 
     }); 
    } 
}); 

yerine kapsam rootscope kullanacak

En basit yolu, Eğer zaman uyumsuz veri talebinde beri kontrolör,

app.controller('another_control',function($scope,$http, $rootScope){ 
     $scope.data = $rootScope.loaded; 

     $scope.$watch('data', function(n) { 
if(angular.isDefined(n)) { 
alert(n[1].song_name); 
} 
}) 
    }); 

ama, sen değerini izleyerek ya a bu bu uyarı fonksiyonu tetiklemek gerekiyor ya tton falan.

daha sonra, daha iyi bir çözüm bulmak için yerel localstorage, hizmetler vb.

+0

Bu betikte rootScope'u anladım ama rootScope'u başka bir JS dosyasında nasıl enjekte edebilirim? –

+0

Cevabını düzenleyeceğim –

+0

Teşekkürler! HTML'de "another_control" i ekleyip niçin 'main_control' kullanamıyorum? –

İlgili konular