如何推送到 js-data 资源中的数组

How to push to an array in a js-data resource

我有一个包含许多路由对象的用户对象。

我像这样加载它们:

return User.find(username).then(function(user) {
    return User.loadRelations(user.username, ['routes'])
        .then(function(user) {
            return user;
        });
});

我的用户对象如下所示:

我希望能够走 user.routes.push(newRoute) 然后保存用户。但是我无法推新路线。

1) js-data <= 2.x 不支持深度保存关系。您需要向资源添加一个方法,将嵌套的有效负载发送到适配器。

2) 此外,默认情况下,关系配置中 localField 选项指定的字段将是一个 属性 访问器,可动态从商店中提取相关项目。推入 属性 访问器返回的数组没有任何意义,因为每次访问 属性.

时它都是不同的数组

您可以使用 linkRelations: false 设置删除 属性 访问器,但您必须手动管理链接。在那种情况下,您可以推入数组,但这对上面的 1) 没有帮助。