2016-04-06 8 views
0

タイトルのように、構成オブジェクトのシリアル化に問題があります。aureliaバインド可能なオブジェクトプロパティがjsonでシリアル化されていません

"リゾート"クラスには、AddressとManagerという2つのbindalbeプロパティがあります。どちらもhttpClient.jsonによって直列化されませんが、@bindableを削除すると直列化が完璧に動作します。問題はどこですか?

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 = []; 
} 

これは私のフェッチコードです:JSON機能の

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

結果:

{"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

私が知る限り、@bindableプロパティはWebコンポーネントクラスで使用する必要があります。私の意見では、あなたのクラスがWebコンポーネントであれば、それをあなたのサーバに投稿すべきではありません。代わりに普通のjavascriptオブジェクトに変換するべきです。クラスにいくつかのプロパティと関数があり、状態やイベントを処理するために必要であると想像してください。これらの不要な情報はすべてサーバーに送信する必要はありません。 –

答えて

1

これらの属性はプロパティgetter/setterとしてラップされており、もはや列挙できません。

0

、ただし、json(resortObject)

の代わりに JSON.serialize(resortObject)を使用してみることもできます
関連する問題