Javascript 如何使用数据创建非持久化模型?
我有一个余烬数据应用程序,我正在使用Javascript 如何使用数据创建非持久化模型?,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,我有一个余烬数据应用程序,我正在使用createRecord在新的记录页面上实例化一个模型。问题是,这会立即在存储中创建记录。因此,如果有人离开新记录页,该对象已经被持久化。以前有一个createModel方法,但它似乎已被删除。现在是如何处理的?您可以检查Model.isNew是否已保存。例如,当您从model/addroute向后导航时,可以在Handlebar中执行以下操作,以显示数据库中的记录列表并隐藏新的非持久化模型: {{#each item in model}} {{#unle
createRecord
在新的记录页面上实例化一个模型。问题是,这会立即在存储中创建记录。因此,如果有人离开新记录页,该对象已经被持久化。以前有一个createModel
方法,但它似乎已被删除。现在是如何处理的?您可以检查Model.isNew
是否已保存。例如,当您从model/add
route向后导航时,可以在Handlebar中执行以下操作,以显示数据库中的记录列表并隐藏新的非持久化模型:
{{#each item in model}}
{{#unless item.isNew}}
{{item.name}}
{{/unless}}
{{/each}}
根据,DS.Store.createRecord
方法:
在当前存储中创建新记录
如果不想检查记录
是否为新记录
。您可以为用户输入和调用createRecord
设置一些属性,前提是您确定这些属性可以并且将被持久化 或者,您可以使用route.resetController
和store.unloadRecord
在用户离开路由后从存储中删除记录,而不是检查Model.isNew
Route.resetController
用于在模型更改或用户离开后必须进行的所有控制器清理。IMHO这包括从存储中删除未保存的模型
PostsNewRoute = Ember.Route.extend
model: (params) ->
@store.createRecord 'post'
resetController: (controller, isExiting, transition) ->
@store.unloadRecord controller.get('model') if isExiting
请参见和嗯。。。所以答案基本上是我们需要一个强制过滤器?我在我的应用程序中使用这种方法,我没有找到更好的解决方案。这不是一个坏建议,我很感激。我希望有人提出正确的“余烬”方式,但如果没有,我会接受你的。如果有人提出更好的解决方案,我也会使用它。