1

我正在使用 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">

但是地址没有被设置为组织,因为它在商店中还不存在。那么有什么办法可以解决这个问题吗?

谢谢!

4

1 回答 1

1

您可以禁用在存储中查找相关数据的关系属性访问器。禁用属性访问器意味着链接不会随着数据更改或从存储中删除或添加到存储中而保持最新。

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

在 store 上设置linkRelations: false将禁用所有关系的属性访问器。

js-data 3.x 将引入更灵活的选项。

于 2016-01-18T20:00:14.947 回答