AngularJS:检索电子中的 mysql 数据并将其发布到 AngularJS 范围
AngularJS: Retrieve mysql data in electron and publish it to AngularJS scope
我正在尝试使用 electron 从 mysql
数据库中检索数据列表,并将其绑定到控制器范围内的列表。我正在使用 mysql2
。这是我的控制器:
$scope.carList = [];
mysql.execute("SELECT * FROM cars").spread(function(results){
$scope.carList = results;
console.log(results);
})
我确实得到了结果,但是视图 carList
中的 仍然是空的。我该如何解决这个问题?
我刚刚在我的视图中添加了一个按钮并将其绑定到一个检查函数,如下所示:
$scope.check = function(){
console.log($scope.carList);
}
单击按钮后,我在视图中的列表得到填充。现在我的问题是如何在控制器开始时填充我的列表,而不是等待事件发生?
我认为 mysql.execute("").spread(fn)
promise 不是 AngularJS 摘要循环的一部分。您没有提供足够的代码来完全重现您的问题,但我认为通过触发一个新的摘要周期它应该适合您。例如。尝试使用 $timeout
触发新的摘要循环。
$scope.carList = [];
mysql.execute("SELECT * FROM cars").spread(function(results){
$timeout(function () {
$scope.carList = results;
});
})
我更愿意创建一个 AngularJS 服务来以一种很好的方式处理你的电子 mysql
。在完成不属于摘要周期的 mysql 程序后,您可以在其中全局应用 $scopes
。
使用AngularJS promises
的方法
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', function($scope, $q) {
$scope.carList = [];
getCars.then(function(cars) {
$scope.carList = cars;
});
function getCars() {
var deferred = $q.defer();
mysql.execute("SELECT * FROM cars").spread(function(results) {
deferred.resolve(results);
});
return deferred.promise;
}
});
我正在尝试使用 electron 从 mysql
数据库中检索数据列表,并将其绑定到控制器范围内的列表。我正在使用 mysql2
。这是我的控制器:
$scope.carList = [];
mysql.execute("SELECT * FROM cars").spread(function(results){
$scope.carList = results;
console.log(results);
})
我确实得到了结果,但是视图 carList
中的 仍然是空的。我该如何解决这个问题?
我刚刚在我的视图中添加了一个按钮并将其绑定到一个检查函数,如下所示:
$scope.check = function(){
console.log($scope.carList);
}
单击按钮后,我在视图中的列表得到填充。现在我的问题是如何在控制器开始时填充我的列表,而不是等待事件发生?
我认为 mysql.execute("").spread(fn)
promise 不是 AngularJS 摘要循环的一部分。您没有提供足够的代码来完全重现您的问题,但我认为通过触发一个新的摘要周期它应该适合您。例如。尝试使用 $timeout
触发新的摘要循环。
$scope.carList = [];
mysql.execute("SELECT * FROM cars").spread(function(results){
$timeout(function () {
$scope.carList = results;
});
})
我更愿意创建一个 AngularJS 服务来以一种很好的方式处理你的电子 mysql
。在完成不属于摘要周期的 mysql 程序后,您可以在其中全局应用 $scopes
。
使用AngularJS promises
的方法var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', function($scope, $q) {
$scope.carList = [];
getCars.then(function(cars) {
$scope.carList = cars;
});
function getCars() {
var deferred = $q.defer();
mysql.execute("SELECT * FROM cars").spread(function(results) {
deferred.resolve(results);
});
return deferred.promise;
}
});