Если метод возвращает данные, то загрузить в модуль (вид) — Aurelia

Простите меня за мое невежество, но я только начал с Aurelia / ES6 и многое озадачивает меня на данный момент. Я полностью новичок в клиентских фреймворках, поэтому надеюсь, что то, чего я пытаюсь достичь, возможно в рамках фреймворка.

Так как заголовок указывает, что я получаю данные в классе:

import {inject} from "aurelia-framework";
import {HttpClient} from "aurelia-http-client";

let baseUrl = "/FormDesigner/";

@inject(HttpClient)
export class FormData{

    constructor(httpClient)
    {
        this.http = httpClient;
    }

    GetFormById(formId)
    {
        return this.http.get(`${baseUrl}/GetFormById/${formId}`)
                        .then(resp => resp.content);
    };
}

Теперь я могу видеть / получать данные, которые велики, но после копания в документах я не могу, кажется, выяснить:

  1. Загрузите отдельный связанный module/viewидентификатор в главное представление (app.формат html)
  2. Если данные, ошибка и идентификатор redirectне переданы no-form view

Сценарий:

Пользователь A переходит к «FormDesigner / # / form/3E7689F1-64F8-A5DA0099D992″ в этот момент» A » попадает на страницу формы, теперь в случае успеха и данные были возвращены передать formIdв другой метод в другом месте, а затем загрузить вmodule/viewстраницы , возможно, с помощью <compose></compose>

Это, вероятно, очень просто, но документация (на мой взгляд), кажется, довольно ограничена кем-то новым .

Действительно цените любое руководство / концепции высокого уровня, как всегда, всегда высоко ценится!

С уважением,

1 ответ

  1. Похоже, что вы можете просто принять участие в жизненном цикле маршрутизации

    При переходе к модулю можно создать activateметод на модели представления, который будет вызываться при запуске маршрутизации.

    В этом методе вы можете вернуть обещание (в то время как вы получаете данные) и перенаправить, если выборка завершается неудачей

    Фактически, если обещание отклонено, маршрут будет отменен

    В случае успеха вы можете использовать любой метод, который вам нужно загрузить в свой модуль (предполагая, что он не может быть просто частью загружаемого модуля, так как маршрутизация не будет отменена)

    Что-то вроде

    activate(args, config) {
        this.http.get(URL).then(resp => {
            if (resp.isOk) {
               // Do stuff
            } else {
              // Redirect
            }
        });
    }