我已经设置了两个控制器(控制器A和控制器B)和一个服务(service)。我正试图将控制器A的数据同步到服务,并将该信息呈现给控制器B。
在我的服务中,我建立了一个变量confirmdata
,并获取和设置函数:
function setData(data) {
confirmdata = angular.copy(data);
}
function getData() {
return confirmdata;
}
在控制器A中,我创建了一个函数sync
,用于将控制器中的信息同步到服务:
this.sync = function () {
var data = {
payment: this.getpayment()
}
Service.setData(data);
在控制器B中,我分配了一个功能:
this.sync = function () {
this.viewData = Service.getData();
console.log('TestingData', this.viewData);
出于某种原因,我不知道;我的控制台日志只是在应该返回getpayment()
函数的结果时返回undefined。我是不是遗漏了什么?
未定义的事实表明您尚未在服务中初始化"confirmdata"。然而,这是否是真正的问题尚不清楚。举个简单的例子,我会这样设计你的服务:
myApp.factory('sharedService', [function () {
var confirmdata = {};
return {
setData: function (newData) { confirmdata = newData; },
getData: function getData() { return confirmdata; }
}
}]);
看看这个笨蛋。它给出了一个通过服务在控制器之间共享数据的例子。