Ember.js 使用属性设置器保存余烬模型
我有一个编辑控制器的属性设置器,它以良好的格式返回日期并解析用户的输入。只要我不保存模型,它就可以正常工作。保存操作提交除日期之外的所有更改,并将其恢复为以前的值。在点击“保存”按钮之前,一切正常,我的意思是当用户键入新的日期时,日期会更改,但“保存操作”只会更新直接修改的字段 为什么保存操作中的模型不同于由setter呈现和修改的模型Ember.js 使用属性设置器保存余烬模型,ember.js,Ember.js,我有一个编辑控制器的属性设置器,它以良好的格式返回日期并解析用户的输入。只要我不保存模型,它就可以正常工作。保存操作提交除日期之外的所有更改,并将其恢复为以前的值。在点击“保存”按钮之前,一切正常,我的意思是当用户键入新的日期时,日期会更改,但“保存操作”只会更新直接修改的字段 为什么保存操作中的模型不同于由setter呈现和修改的模型 App.TaskEditController = Em.ObjectController.extend dateValue: ((key, value)-&
App.TaskEditController = Em.ObjectController.extend
dateValue: ((key, value)->
model = @get 'model'
if arguments.length is 1
date = model.get 'date'
return moment(date).format 'YYYY-MM-DD'
newValue = value
# do something with newValue here
model.set 'date', newValue
return newValue
).property 'date'
actions:
save: ->
model = @get 'model'
# model.get 'date' returns previous value
model.save()
这只是一个想法,但乍一看,save操作中的get模型似乎与dateValue中的模型相同。他们在同一个地方。因为您没有将日期保存到dateValue中的模型,所以get将获取旧版本。您是否已尝试从保存操作中删除model=@get'model',并使用this.model,或者改为在model.set'date',newvalue之后保存该模型?我想我发现如果值的类型不同于date,则答案-日期序列化程序将返回null。我是在并没有日期的项目上测试这段代码的,所以我假设那个日期被恢复为以前的值。