2017-06-30 3 views
2

Ansicht ModellWie die json in richtigen Format in Javascript

function CustInfo() { 
    var vm = this; 

    vm.CustInfo = { 
     "custId": "", 
     "custTitle": "", 
     "custName": "" 
    }; 

    return vm; 
} 

Global Werte

(function() { 
'use strict'; 

var obj = null; 

angular 
    .module('app') 
    .value('Cust_Info', new CustInfo()); 

})(); 

Winkelregler

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

Aber setzen, wenn Service & genannt prüfe ich session die custInfo sieht wie folgt aus.

{ 
"CustInfo": { 
    "custId": "", 
    "custTitle": "", 
    "custNumber": "" 
}, 
"custId": "1", 
"custNumber": "021758" 
} 

Während ich versuche, die json wie unten

{ 
"CustInfo": { 
    "custId": "1", 
    "custNumber": "021758" 
    "custTitle": "", 
} 
} 

einstellen Was ist der Grund dafür?

Auch ich frage mich irgendwie, wenn ohne sie in der Sitzungsspeicher zu speichern, wenn ich könnte CustInfo aktualisierten Werte in verschiedene Controller zugreifen, da ich es als globale Werte erklärt.

Antwort

0

erste Teil der Lösung:

Sie kehren nicht das richtige Objekt

function CustInfo() { 
    var vm = this; 

    vm.CustInfo = { 
     "custId": "", 
     "custTitle": "", 
     "custName": "" 
    }; 

    return vm.CustInfo ; 
} 

Zweiter Teil der Lösung

Sie können in Ihrer Anwendung auf Cust_Info zugreifen, wenn Sie sie als Konstante definieren. Sie können dies dann zu jedem Controller, Konfiguration oder Service injizieren.

(function() { 
'use strict'; 

var obj = null; 

angular 
    .module('app') 
    .constant('Cust_Info', 
    return new CustInfo()); 

})(); 
+0

Danke !! Ich werde dies als akzeptiert markieren, sobald es erlaubt. In der Zwischenzeit, können Sie bitte teilen Sie Ihre Einsicht auf den zweiten Teil der Frage (unten in Fettdruck kursiv) –

+0

Aber sie sind nicht konstant. Kann ich nicht auf die gleiche Weise wie constant zugreifen, aber mit .value() –

+0

Auch wenn sie als Konstanten deklariert sind, wird es in der gesamten Anwendung verfügbar sein und Sie können den Wert aktualisieren und der aktualisierte Wert wird verfügbar sein – Vivz

0

Sie fügen Ihrem CustInfo object zusätzliches CustInfo Attribut hinzu.

Try Code unten,

function CustInfo() { 
     var vm = this; 

     vm = { 
      "custId": "", 
      "custTitle": "", 
      "custName": "" 
     }; 

     return vm; 
    } 
Verwandte Themen