1

似乎 SpineModel.updateAttributes只更新属性,如果您提供任何属性,则不会创建新属性。

在我的用例中,我有一个创建部分属性的控制器。然后通过 Ajax 请求,服务器用完整的对象进行响应,我想用其他变量更新 Spine 中的模型实例。

例如,我有一个带有属性的模型:namedate_created。通过控制器,用户实例化一个只提供名称的对象。Ajax 请求会通知服务器,而服务器又会以名称和date_created进行响应。然后应将此date_created添加到用户的模型中。

Model.updateAttributes不起作用,我也不会太喜欢删除对象并创建一个新对象——这似乎开销太大。我可以为创建时未设置的变量提供默认值,但这也有不利的一面。我想我正在寻找的是一种可以调用的方法Model.createOrUpdateAttributes。有人可以推荐一种方法来实现这一目标吗?谢谢!

4

1 回答 1

2

我可能还没有完全理解你的用例,但我会尽力回答。您需要使用configure类方法声明模型类型具有的任何属性。这个声明有助于各种模型函数在以后完成它们的工作。在你声明了所有你需要的属性之后,你可以使用之前声明的任何属性来创建模型实例。您不必为所有声明的属性提供值。ajax 调用返回后,将在您的模型实例上设置date_created 。在这种情况发生之前,它将只是undefined

如果此解决方案仍然无法为您工作,请说明原因,我很乐意提供帮助。

于 2013-02-26T13:18:25.687 回答