视图模型

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());

 })();

10-06 11:52