derbyparty/derby-faq

Компоненты: связка документа с локальным путем.

Closed this issue · 4 comments

В faq описано как в компоненте связать результат запроса с локальным путем.
Такая конструкция работает корректно

    var q = model.root.query('project',{});
    model.subscribe(q,function(){
        model.ref('formdata',q);
    });

Как сделать связь не с запросом, а с конкретным документом?
Аналогичная конструкция со scoped моделью отказывается работать

    var scoped = model.root.at('project.986690fa-37f6-4e03-b97b-99ef04875d2b');
    model.subscribe(scoped,function(){
        model.ref('formdata',scoped);
    });

Есть вариант решения - подписаться на документ через запрос, но с указанием массива идентификаторов (с одним элементом)

            model.root.set('_ids',['986690fa-37f6-4e03-b97b-99ef04875d2b']);
            var q = model.root.query('project','_ids') ;
            ...

и дальше уже обращаться к данным через индекс.
Однако, такой метод кажется мне некорректным.

Извиняюсь, но похоже что конструкция

    var scoped = model.root.at('project.986690fa-37f6-4e03-b97b-99ef04875d2b');
    model.subscribe(scoped,function(){
        model.ref('formdata',scoped);
    });

работает корректно. Видимо что-то у меня в кэше браузера сохранилось некорректно.

Можно, кстати, добавить этот вариант в раздел Компоненты в дополнение к связки запроса с локальным путем.

Выяснилось, что лучше использовать для этого не model.root.at а model.scope. В остальном, все так же.

Cпасибо!