我试过以下代码
这是我的服务
angular.module('DriverApp').service('driverservice',['$scope',function ($scope) {
$scope.drivers = [{
firstName: 'John',
lastName: 'Smith',
birthday: '2000-10-01',
vehicle: 'Nissan-GTR',
ranking: 1
}, {
firstName: 'Mike',
lastName: 'Black',
birthday: '2002-06-12',
vehicle: 'Merc SLK 500',
ranking: 2
}];
returnDriver=function(){
return $scope.drivers;
}
}]);
这是我的控制器
angular.module('DriverApp').controller('MainController',['$scope','driverservice',function (driverservice,$scope) {
$scope.getDrivers=driverservice.returnDriver();
}]);
但是在控制台中显示错误
答案 0 :(得分:2)
您无法在服务或工厂中使用$scope
。 $scope
允许您将控制器操作绑定到视图,反之亦然。控制器是遵循传统MVC模式的唯一用于与视图交互的东西。
您的服务只应用于向控制器提供数据或从控制器提供数据。
阅读AngularJS Documentation以了解$scope
的工作原理。
答案 1 :(得分:1)
您可以将$ scope作为参数从控制器传递到下面
$scope.drivers = 10;
driverservice.save(drivers).success(function() {
alert('saved successfully!!!');
}).error(function(){
alert('something went wrong!!!');
});
在您的driverservice服务中,定义保存功能:
angular.module('DriverApp').service('driverservice',['$http',function ($http) {
this.save = function(drivers){
//Do stuffs
}
}