使用 jsdata 对象而不持久化它们

Using jsdata objects without persisting them

我正在使用 js-data 和 js-data-angular。我有 2 个资源,organizationaddress,一个组织 hasOne 地址。

我正在尝试创建一个组织(不保留它)以便能够将其绑定到 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">

但该地址并未设置为该组织,因为它在商店中尚不存在。那么有什么办法可以处理吗?

谢谢!

您可以禁用正在存储中查找相关数据的关系 属性 访问器。禁用 属性 访问器意味着链接将不会 up-to-date 随着数据更改或从商店中删除或添加到商店中。

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 将引入更灵活的选项。