无法使用公共共享服务检索其他控制器中的数据
Not able to retrieve data in the other controller using common shared service
我正在创建一个名为 Popup Service 的共享服务,以便我可以在两个控制器(即 BankController 和 CreateBankController)之间共享数据。
我可以在 PopupService 中设置我需要共享的对象。在 BankController 中调用 popupService(同时单击数据行上的编辑 link)以设置要共享的对象。
CreateBankController 然后由弹出窗体调用,但在 CreateBankcontroller 中我无法从 PopupService 访问共享数据,我得到一个错误,指出 objectToEdit 变量未定义。
- 请问我如何让 PopupService 在两个控制器之间共享数据
- Popup 共享服务中的数据最终能否被竞争用户操作覆盖并显示陈旧数据
正在工作的笨蛋
https://plnkr.co/edit/y8dZNU?p=preview
正在 CreateBankController 中检索数据
CreateBankController.$inject = ['PopupService'];
function CreateBankController(PopupService) {
var vm = this;
var data = {
bankName: "",
bankAddress: "",
};
debugger;
if (PopupService.getObjectToEdit() !== null) {
data = PopupService.getObjectToEdit();
}
在 BankController 中设置共享数据
$scope.bankGrid = {
dataSource: queryResult,
columns: [{
dataField: 'orderID',
caption: 'Order ID'
}, {
width: 50,
alignment: 'center',
caption: 'Edit',
cellTemplate: function(container, options) {
$('<a/>').addClass('dx-link')
.text('Edit')
.on('dxclick', function() {
PopupService.addObjecToEdit(options.data);
$scope.showPopup = true;
})
.appendTo(container);
}
共享数据服务 - 弹出服务
(function () {
'use strict';
angular
.module('myApp')
.factory('PopupService', PopupService);
function PopupService() {
var popupInstance = {};
var objectToEdit = {};
var service = {
addObjecToEdit : addObjecToEdit,
getObjectToEdit: getObjectToEdit,
showPopup: showPopup,
hidePopup: hidePopup
};
return service;
//Functions
function addObjecToEdit(pObjectToEdit){
objectToEdit = pObjectToEdit;
}
function getObjectToEdit() {
return objecTtoEdit;
}
function showPopup(){
popupInstance.showPopup();
}
function hidePopup(){
popupInstance.hidePopup();
}
}
}());
您在服务中有错字:
function getObjectToEdit() {
return objecTtoEdit;
}
更改为:
function getObjectToEdit() {
return objectToEdit;
}
我正在创建一个名为 Popup Service 的共享服务,以便我可以在两个控制器(即 BankController 和 CreateBankController)之间共享数据。
我可以在 PopupService 中设置我需要共享的对象。在 BankController 中调用 popupService(同时单击数据行上的编辑 link)以设置要共享的对象。
CreateBankController 然后由弹出窗体调用,但在 CreateBankcontroller 中我无法从 PopupService 访问共享数据,我得到一个错误,指出 objectToEdit 变量未定义。
- 请问我如何让 PopupService 在两个控制器之间共享数据
- Popup 共享服务中的数据最终能否被竞争用户操作覆盖并显示陈旧数据
正在工作的笨蛋 https://plnkr.co/edit/y8dZNU?p=preview
正在 CreateBankController 中检索数据
CreateBankController.$inject = ['PopupService'];
function CreateBankController(PopupService) {
var vm = this;
var data = {
bankName: "",
bankAddress: "",
};
debugger;
if (PopupService.getObjectToEdit() !== null) {
data = PopupService.getObjectToEdit();
}
在 BankController 中设置共享数据
$scope.bankGrid = {
dataSource: queryResult,
columns: [{
dataField: 'orderID',
caption: 'Order ID'
}, {
width: 50,
alignment: 'center',
caption: 'Edit',
cellTemplate: function(container, options) {
$('<a/>').addClass('dx-link')
.text('Edit')
.on('dxclick', function() {
PopupService.addObjecToEdit(options.data);
$scope.showPopup = true;
})
.appendTo(container);
}
共享数据服务 - 弹出服务
(function () {
'use strict';
angular
.module('myApp')
.factory('PopupService', PopupService);
function PopupService() {
var popupInstance = {};
var objectToEdit = {};
var service = {
addObjecToEdit : addObjecToEdit,
getObjectToEdit: getObjectToEdit,
showPopup: showPopup,
hidePopup: hidePopup
};
return service;
//Functions
function addObjecToEdit(pObjectToEdit){
objectToEdit = pObjectToEdit;
}
function getObjectToEdit() {
return objecTtoEdit;
}
function showPopup(){
popupInstance.showPopup();
}
function hidePopup(){
popupInstance.hidePopup();
}
}
}());
您在服务中有错字:
function getObjectToEdit() {
return objecTtoEdit;
}
更改为:
function getObjectToEdit() {
return objectToEdit;
}