2016-04-06 7 views
0

so wie in Titel habe ich ein Problem mit der Serialisierung von Komposition Objekt.Aurelia bindable Objekt-Eigenschaft nicht in JSON serialisiert

Klasse "Resort" hat zwei bindalbe Eigenschaften: Adresse und Manager. Beide werden nicht von httpClient.json serialisiert, aber wenn @bindable entfernt wird, funktioniert die Serialisierung einwandfrei. Wo ist das Problem?

import {bindable} from 'aurelia-framework'; 
import {Address} from './../models/address.js' 
import {Employee} from './../models/employee.js' 

export class Resort { 
    id = ""; 
    name=""; 
    category_id = ""; 
    organization_id = ""; 
    manager_id = ""; 
    owner_id = ""; 
    active = ""; 
    deleted = ""; 
    date_created = ""; 
    date_modified = ""; 
    checkin = ""; 
    checkout = ""; 
    date_deleted = ""; 
    notes = ""; 
    address_id = ""; 

    @bindable address = new Address(); 
    @bindable manager = new Employee(); 

    category_attraction = []; 
    category_option = []; 
} 

dies mein fetching-Code ist:

this.http.fetch('resorts', { 
      method: 'post', 
      body: json(resortObject) 
     }) 

RESULT von json Funktion:

{"id":"","name":"LOLO","category_id":"","organization_id":"","manager_id":"","owner_id":"","active":"","deleted":"","date_created":"","date_modified":"","checkin":"","checkout":"","date_deleted":"","notes":"","address_id":"","category_attraction":[],"category_option":[]} 

TIA :)

+0

Soweit ich weiß, sollten @bindable-Eigenschaften in Web-Komponenten-Klassen verwendet werden. Meiner Meinung nach, wenn Ihre Klasse eine Webkomponente ist, sollten Sie sie nicht auf Ihrem Server veröffentlichen. Sie sollten sie stattdessen in ein einfaches JavaScript-Objekt konvertieren. Stellen Sie sich vor, Ihre Klasse verfügt über einige Eigenschaften und Funktionen, die für die Verarbeitung von Zuständen und Ereignissen erforderlich sind. Sie möchten nicht alle diese unnötigen Informationen an den Server senden. –

Antwort

1

Dies liegt daran, dass diese Attribute als Eigenschaften-Getter/Setter umgebrochen wurden und nicht mehr aufzählbar sind.

0

Ich weiß nicht, warum Sie dieses Verhalten haben, aber Sie könnten versuchen, JSON.serialize(resortObject) anstelle von json(resortObject)

0 zu verwenden
Verwandte Themen