似乎Spine的Model.updateAttributes
仅更新属性,并且在您提供任何属性时不会创建新属性。
在我的用例中,我有一个控制器,可以创建部分属性。然后通过Ajax请求服务器响应完整对象,我想用其他变量更新Spine中的模型实例。
例如,我有一个包含属性的模型:名称, date_created 。通过控制器,用户实例化仅提供名称的对象。 Ajax请求通知服务器,服务器又使用名称和 date_created 进行响应。然后应将此 date_created 添加到用户的模型中。
Model.updateAttributes
不起作用,我不会太喜欢删除对象并创建一个新对象 - 这似乎太过于开销。我可以为创建时未设置的变量提供默认值,但也有负面的变量。我想我正在寻找的是一种可以被称为Model.createOrUpdateAttributes
的方法。有人可以推荐一种方法来实现这一目标吗?谢谢!
答案 0 :(得分:2)
我可能还没有完全理解你的用例,但我会尝试回答。 您需要使用 configure 类方法声明模型类型具有的任何属性。该声明有助于各种模型功能在以后完成其工作。 声明所需的所有属性后,可以使用任何先前声明的属性创建模型实例。 您不必为所有声明的属性提供值。 在ajax调用返回后,将在模型实例上设置 date_created 。在此之前,它将只是 undefined 。
如果此解决方案仍无法为您服务,请说明原因,并且我很乐意帮助您。