小编Jon*_*noT的帖子

使用Ember-Data 1.0.0-beta的临时非持久性记录

我是Ember和Ember数据的新手,我决定是使用Ember-Data还是其他一个持久性库.为了评估,我正在尝试编写一个小型的Rails支持的应用程序.

我的其中一条路线可以被认为类似于在示例中经常使用的Todo MVC应用程序.

在我的模板中,我有许多输入字段,表示模型中的属性.此外,我在模型中还有一个表示hasMany关系的元素.

楷模:

App.CompanyModel = DS.Model.extend
   company: DS.attr()
   desc: DS.attr()
   contacts:  DS.hasMany('company_contact')

App.CompanyContactModel = DS.Model.extend
   firstname: DS.attr()
   lastname: DS.attr()
   ...
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我希望能够创建一个新的CompanyModel记录(并且为此添加一个或多个联系人模型),但是在我准备这样做之前,它不会出现在控制器的CompanyModel实例中. .

目前,当用户想要添加新记录时,我有一个在我的控制器中调用操作的组件,如下所示:

@set('new_company',
  @store.createRecord('company')
)
Run Code Online (Sandbox Code Playgroud)

除了一件事,这实际上工作正常.我的视图必须填充"new_company"中的各个属性,但是,记录会立即添加到控制器的模型实例中并显示在记录列表中; 我只希望在特定操作发生后,新创建的记录在表格中可见.

我没有用createRecord实例化new_company,而是可以这样做:

@set('new_company',
  Ember.Object.create
    companyname: ''
    desc: ''
    contacts: [
      firstname: ''
      lastname: ''
    ]
)
Run Code Online (Sandbox Code Playgroud)

然后做一个@ store.createRecord('company',@ get('new_company')),但是,鉴于我已经在模型中定义了我的属性,它对我来说感觉不是很干.

我使用的是Ember 1.5.0和Ember-Data 1.0.0-beta.7.

看来我不是第一个遇到这个问题的人(在Ember-Data中创建临时非持久性对象),但似乎Ember-Data已经充分改变,使所有这些解决方案无法运行.

谢谢你的帮助!

ember.js ember-data

3
推荐指数
1
解决办法
1048
查看次数

标签 统计

ember-data ×1

ember.js ×1