Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 使用属性设置器保存余烬模型_Ember.js - Fatal编程技术网

Ember.js 使用属性设置器保存余烬模型

Ember.js 使用属性设置器保存余烬模型,ember.js,Ember.js,我有一个编辑控制器的属性设置器,它以良好的格式返回日期并解析用户的输入。只要我不保存模型,它就可以正常工作。保存操作提交除日期之外的所有更改,并将其恢复为以前的值。在点击“保存”按钮之前,一切正常,我的意思是当用户键入新的日期时,日期会更改,但“保存操作”只会更新直接修改的字段 为什么保存操作中的模型不同于由setter呈现和修改的模型 App.TaskEditController = Em.ObjectController.extend dateValue: ((key, value)-&

我有一个编辑控制器的属性设置器,它以良好的格式返回日期并解析用户的输入。只要我不保存模型,它就可以正常工作。保存操作提交除日期之外的所有更改,并将其恢复为以前的值。在点击“保存”按钮之前,一切正常,我的意思是当用户键入新的日期时,日期会更改,但“保存操作”只会更新直接修改的字段

为什么保存操作中的模型不同于由setter呈现和修改的模型

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。我是在并没有日期的项目上测试这段代码的,所以我假设那个日期被恢复为以前的值。