使用Javascript从MySQL查找动态数据
我有一个使用Javascript从MySQL查找动态数据,javascript,mysql,angularjs,node.js,Javascript,Mysql,Angularjs,Node.js,我有一个MySQL数据库,我使用Node JS从中获取数据。我还使用AngularJS进行实时搜索。以下是我的HTML代码的一部分: <div class="songlist" ng-controller='another_control'> <table id="songlistTableR" ng-app='test_table' ng-controller='main_control'> <tr><
MySQL
数据库,我使用Node JS
从中获取数据。我还使用AngularJS
进行实时搜索。以下是我的HTML代码的一部分:
<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>
和JS“核心”文件:
app.controller('main_control',function($scope,$http){
load();
function load(){
$http.get("http://localhost:7001/load").success(function(data){
$scope.loaded=data;
});
}
});
问题:我需要从另一个JS文件中的数据库访问此数据。例如,我想要警报(数据[1].song\u name)
。怎么做
UPD:我已经更新了部分HTML代码,但它也不起作用。最简单的方法是使用rootscope而不是scope
app.controller('main_control',function($scope,$http, $rootScope){
load();
function load(){
$http.get("http://localhost:7001/load").success(function(data){
$rootScope.loaded=data;
});
}
});
通过注入$rootScope,然后调用$rootScope.loaded,您可以从任何其他指令、控制器或服务访问此数据
在另一个控制器中
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);
}
})
});
但是,由于您正在请求异步数据,您必须通过观察值或使用按钮或其他方式触发此警报函数
稍后,您可以实际查看本地存储、服务等,以找到更好的解决方案。我不太理解您的问题,您能详细说明一下吗?我在这个脚本中了解了rootScope,但如何将rootScope注入另一个JS文件中?谢谢!在HTML中在哪里添加另一个
控件
,以及为什么我不能同时使用main\u控件
?你不想在整个应用程序中使用同一个控制器,但你也可以扩展控制器的作用域以覆盖更多的代码。例如,在body标记中定义它。但这是一个相当大的范围。当它起作用时,即我可以发出警报($scope.data[1].song_name),我当然会接受。不过,你的问题与此无关。
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);
}
})
});