Как нажать на массив в ресурсе js-data

У меня есть объект User, который имеет много объектов маршрута.

Я загружаю их как:

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

Мой пользовательский объект выглядит так: https://puu.sh/maOdu/da3861544f.png

Я хочу иметь возможность перейти user.routes.push(newRoute), а затем сохранить пользователя. Но я не могу протолкнуть новый маршрут.

1 ответ

Решение

1) js-data <= 2.x не поддерживает глубокое сохранение отношений. Вам нужно будет добавить метод к вашему ресурсу, который отправит вложенную полезную нагрузку адаптеру.

2) Также, по умолчанию, поля, указанные localField Опция в конфигурациях отношений - это средство доступа к свойствам, которое динамически извлекает связанные элементы из хранилища. Не имеет смысла выдвигать массив, возвращаемый средством доступа к свойству, поскольку каждый раз, когда вы обращаетесь к свойству, это другой массив.

Вы можете удалить средство доступа к собственности с помощью linkRelations: false настройки, но тогда вам придется управлять ссылками вручную. В этом сценарии вы можете нажать на массив, но это не поможет с 1) выше.

Другие вопросы по тегам