2016-04-02 68 views
2

我想更新“后保存”钩最后插入/更新的文件(行)没有建立的,像这样新的实例:回环更新模型后保存

Model.observe('after save', function (ctx, next) { 
    ctx.someProperty = 'Foo'; 
    ctx.update(); 
}); 

怎么可能呢?

回答

4

我不确定'更新'模型是什么意思。据我所知,通用模型类没有update()函数。如果您正在寻找updateAttribute那么该功能的文档是here

但是,假设您的问题只是“如何访问观察模型内部的回环挂钩?”那么答案就是实例存储在ctx.instance而不是返回为ctx变量本身。参见示例here

E.g.

Model.observe('after save', function (ctx, next) { 
    ctx.instance.updateAttributes({someProperty: 'Foo'}) 
}); 

如果你能更详细地描述你想实现与update()功能的功能,我将尽力解决这个问题。 还要注意,上面的代码可能会导致无限循环 - 因为updateAttribute调用本身会触发'after save'钩子 - 这是我不确定你真正要求的另一个原因。

+0

我编辑我的问题。是的,你对我的问题的假设是真实的,你对无限循环的暗示也是真实的。是否有任何方法来防止调用'保存'触发器来解决无限循环问题? – viam

+0

@viam好吧,这可能是一个设计问题。为什么特意要更新模型?您能否在保存之前更新您要更新的属性,而不是在事后更新? –

+0

我的目的是更新一个文件行,它的答案已经达到。无限循环是另一个问题。 Tnx – viam