javascript
  • mysql
  • angularjs
  • node.js
  • 2016-03-22 8 views -1 likes 
    -1

    私はMySQLデータベースを持っており、データはNode JSを使って取得しています。また、ライブでの検索にはAngularJSを使用します。ここに私のHTMLコードの一部です:ノード・サーバ・ファイルのJavascriptを使用してMySQLから動的データを検索する

    <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> 
    

    パート:

    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));    
        }); 
    }); 
    

    とJS 'コア' ファイル:

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

    質問:私が持っている必要があります別のJSファイルのデータベースからこのデータへのアクセス。たとえば、私はalert(data[1].song_name)にします。どうやってするの?

    UPD:私はHTMLコードの一部を更新しましたが、動作しません。

    +0

    私はあなたのことをとても理解できませんでした。あなたは精巧にできますか? –

    答えて

    0

    別で

    をrootScope.loaded $を呼び出して、あなたは$ rootScopeを注入することによって、他のディレクティブ、コントローラまたはサービスからこのデータにアクセスすることができ、

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

    の代わりに、スコープのrootscopeを使用する最も簡単な方法は、コントローラ、

    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); 
    } 
    }) 
        }); 
    

    いますが、非同期データを要求しているので、あなたは値を見て、このアラート機能をトリガするために持っているか、BUとのいずれかトンや何か。

    その後、実際にはローカルストレージ、サービスなどを調べてより良い解決策を考え出すことができます。

    +0

    私はこのスクリプトのrootScopeについて理解しましたが、別のJSファイルにrootScopeを挿入する方法はありますか? –

    +0

    私は答えを編集します –

    +0

    ありがとう! HTMLに 'another_control'をどこに追加すればいいのですか?なぜ' main_control'も使用できないのですか? –

    関連する問題