我使用AngularJS设置了一个简单的todo应用程序来测试其功能,一旦我运行了基础知识,我就决定为数据添加持久性。
我决定使用MySQL设置一个本地环境,并且有点麻烦我决定使用Ruby而不是PHP来进行服务器访问。
问题来自执行Ruby脚本和检索数据。现在,当我尝试在AngularJS中使用$ http时,它只返回ruby脚本,而不是执行它。
此处的相关代码供参考。
todo.js:
var module = angular.module('app', []);
module.service('MySQLConnect', function($http) {
this.getData = function() {
$http.get('api/todos.rb').success(function(data) {
console.log(data);
});
return response;
}
});
module.controller('TodoCtrl', function($scope, MySQLConnect) {
$scope.todos = MySQLConnect.getData();
});
todos.rb:
require 'mysql'
begin
connection = Mysql.new 'localhost', 'root', 'root', 'todo', 8889, '/Applications/MAMP/tmp/mysql/mysql.sock'
results = connection.query("SELECT * FROM todos")
todos = []
results.each_hash do |row|
todos.push(row)
end
todos
rescue Mysql::Error => e
puts e.errno
puts e.error
ensure
connection.close if connection
end
现在,数据的控制台日志只返回用todos.rb编写的所有内容。如何让它实际执行脚本并返回todos数组?