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

时间:2016-01-18 18:53:36

标签: angularjs jsdata js-data-angular

我正在使用js-data和js-data-angular。我有两个资源,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">

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

谢谢!

1 个答案:

答案 0 :(得分: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将引入更灵活的选项。