这是关于 angularjs 服务的基本问题。
我创建了一个非常简单的应用程序,其中包含以下代码。
var App = angular.module('testApp', ['testService']);
App.config(['$routeProvider', function($routeProvider)
{
$routeProvider
.when('/', {templateUrl: 'partials/dataDisplay.html', controller: testCtrl})
.otherwise({redirectTo: '/'});
}]);
angular.module('testService', []).
factory('svcTest', function($http){
var myService =
{
getPeopleInfo: function()
{
$http.get('/test/app/data/getData.php').success(function(data) {
console.log("Data : " + data.people);
return data.people;
});
}
};
return myService;
});
function testCtrl($scope, svcTest) {
$scope.people = svcTest.getPeopleInfo();
}
当它执行“$http.get”时,我实际上正在获取数据(甚至 getData.php 也返回有效的 JSON。)。但是,数据永远不会更新到 testCtrl。不确定我在做一些非常愚蠢的事情,作为 Angularjs 的新手。
但是,如果我摆脱这些服务并在控制器中添加 http.get,则会检索数据并将其更新到视图中。
function testCtrl($scope, $http) {
$http.get('/test/app/data/getData.php').success(function(data) {
$scope.people = data.people;
});
}
我在服务中使用的代码的根本问题是什么?
顺便说一句,我的 HTML 非常简单,它以简单的表格格式显示这些信息。