我正在尝试使用服务在两个控制器之间共享数据,但数据未保存在服务中。 我的Serice
angular.module('dataservice', []).
factory('DataService', function(){
var item = {};
var addItem = function(newObj) {
item = newObj;
};
var getItem = function(){
return item;
};
return {
addItem: addItem,
getItem: getItem
};
});
我的控制器
angular.module('App.controllers', []).
controller('SaveController', function($scope, $routeParams, APIService,DataService){
$scope.id = $routeParams.id;
$scope.book = null;
APIService.getBook($scope.id).success(function(response){
$scope.book = response;
DataService.add($scope.book);//add to service
});
}).
controller('ReadController', function($scope,DataService){
$scope.book = null;
$scope.book = DataService.get();//get from service
})
使用chrome dev工具检查我何时尝试读取数据,我只得到对象定义,即DataService = Object {}。
谢谢
答案 0 :(得分:2)
首先,您在另一个factory
中有一个module
,因此您必须注入它主 模块像这样:
angular.module('App.controllers', ['dataservice'])
然后,您可以拨打DataService
factory
..
注意:您尝试访问方法add
和get
,但实际上他们分别被命名为addItem
和getItem
,所以你应该重命名它们。