我有一个模型(使用Ember Data),我想在任何字段发生变化时自动保存。我一直在使用this autosave plugin,效果很好, 除了 我有JSON字段,不会触发自动保存。
我的模型的字段如下所示:
title: DS.attr('string'),
options: DS.attr(),
每当title
属性发生更改时,它都会触发ember-autosave插件使用的setUnknownProperty
上的ObjectProxy
方法。但是,如果我更改,例如options.layout
,则setUnknownProperty
不会被调用,因此它不会触发自动保存。
我尝试的另一种方法是在options
对象的所有属性上设置观察者。但是,一旦我将模型保存到数据库,Ember就会从服务器返回数据并重新加载模型,然后再次触发观察者,导致另一次保存,从而导致无限循环。
我有什么选择?
答案 0 :(得分:1)
如果你这样做
options.layout = 'foobar';
然后立即致电:
this.set('options', options)
这会触发objectProxy中的setUnknownProperty方法吗?