视图模型
function CustInfo() {
var vm = this;
vm.CustInfo = {
"custId": "",
"custTitle": "",
"custName": ""
};
return vm;
}
全球价值观
(function () {
'use strict';
var obj = null;
angular
.module('app')
.value('Cust_Info', new CustInfo());
})();
角度控制器
(function () {
"use strict";
angular
.module("app")
.controller("custCtrl", custCtrl);
custCtrl.$inject = ['dataService','Cust_Info'];
/* @ngInject */
function custCtrl(dataService, Cust_Info) {
var vm = this;
function _GetData() {
//scar
dataService.read(id).then(function (data) {
if (data.fields != null) {
//set meta data
Cust_Info.custId = data.fields.id;
Cust_Info.custNumber = data.fields.number;
//store into session storage
sessionStorage.info = JSON.stringify(cust_Info);
}
});
}
return vm;
}
})();
但是当调用服务&I check sessionStorage时,custInfo如下所示。
{
"CustInfo": {
"custId": "",
"custTitle": "",
"custNumber": ""
},
"custId": "1",
"custNumber": "021758"
}
当我试图将json设置为如下所示时
{
"CustInfo": {
"custId": "1",
"custNumber": "021758"
"custTitle": "",
}
}
这是什么原因?
另外,我想知道如果不将其存储在会话存储中,是否可以将CustInfo更新的值访问到不同的控制器中,因为我已经将其声明为全局值。
最佳答案
解决方案的第一部分:
你没有返回正确的对象
function CustInfo() {
var vm = this;
vm.CustInfo = {
"custId": "",
"custTitle": "",
"custName": ""
};
return vm.CustInfo ;
}
解决方案的第二部分
如果将其定义为常量,则可以跨应用程序访问
Cust_Info
。然后可以将此注入任何控制器、配置或服务。(function () {
'use strict';
var obj = null;
angular
.module('app')
.constant('Cust_Info',
return new CustInfo());
})();