2016-01-18 3 views
1

Я использую js-data и js-data-angular. У меня есть 2 ресурса, organization и address, организация hasOne адрес.Использование объектов jsdata без их сохранения

Я пытаюсь создать организацию (не сохраняя ее), чтобы связать ее с компонентами html. И установите некоторые реквизиты по умолчанию. Так что я делаю:

var address = AddressResource.createInstance(); 
address.set('country', defaultCountry); // CountryResource.get('US'); 
var organization = OrganizationResource.createInstance({ address: address }); 

Тогда я делаю во взгляде что-то вроде

<input ng-model="organization.address.country.name">

Но адрес не установлен орг, так как он еще не существует в магазине. Так есть ли способ справиться с этим?

Спасибо!

ответ

1

Вы можете отключить атрибуты свойств отношения, которые ищут в хранилище соответствующие данные. Отключение агентов доступа к ресурсам означает, что ссылки не будут обновляться по мере изменения данных или удалены или добавлены в хранилище.

var Organization = store.defineResource({ 
    name: 'organization', 
    relations: { 
    hasOne: { 
     address: { 
     // disable property accessor for this relation 
     link: false, 
     localField: 'address', 
     localKey: 'address_id' 
     } 
    } 
    } 
}) 

Установка linkRelations: false на магазине отключит аксессор свойств для всех отношений.

js-data 3.x представит более гибкие варианты.

+0

Спасибо @jdobry, но, делая это, как вы сказали, вы потеряете все приятные функции js-data. И я также теряю все отношения от «адреса», который имеет отношение к «стране», например. Я пытаюсь найти что-то посередине ... чтобы не потерять все. – Mustela

Смежные вопросы