如果方法 returns 数据然后加载到模块(视图)中 - Aurelia
If method returns data then load in module(view) - Aurelia
请原谅我的无知,但我刚刚开始使用 Aurelia/ES6,目前有很多问题让我感到困惑。我对客户端框架完全陌生,所以希望我试图实现的目标 是 在框架内可能的。
正如标题所示,我正在 class:
中获取数据
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);
};
}
现在我可以 see/receive 很棒的数据,但在深入研究文档后我似乎无法弄清楚:
- 通过 Id 加载单独的相关
module/view
到 主视图 (app.html)
- 如果没有数据,错误并且没有传递 Id 那么
redirect
到 no-form view
场景:
用户 A 导航到 "FormDesigner/#/form/3E7689F1-64F8-A5DA0099D992",此时 "A" 登陆表单页面,现在如果成功并且数据 已经 返回通过 formId
到其他地方的不同方法,然后加载到 module/view
- Pages,可能使用 <compose></compose>
这可能真的很简单,但文档(在我看来)似乎相当限于新手。
非常感谢任何 guidance/high 级别的概念,一如既往,非常感谢!
此致,
听起来您可能只想参与路由生命周期
如果您要导航到一个模块,您可以在视图模型上创建一个 activate
方法,该方法将在路由开始时调用。
在这种方法中,您可以 return 承诺(当您获取数据时)并在获取失败时重定向
实际上如果promise被拒绝,路由也会被取消
如果成功,您可以使用任何需要加载到模块中的方法(假设它不能只是正在加载的模块的一部分,因为路由不会被取消)
类似
activate(args, config) {
this.http.get(URL).then(resp => {
if (resp.isOk) {
// Do stuff
} else {
// Redirect
}
});
}
请原谅我的无知,但我刚刚开始使用 Aurelia/ES6,目前有很多问题让我感到困惑。我对客户端框架完全陌生,所以希望我试图实现的目标 是 在框架内可能的。
正如标题所示,我正在 class:
中获取数据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);
};
}
现在我可以 see/receive 很棒的数据,但在深入研究文档后我似乎无法弄清楚:
- 通过 Id 加载单独的相关
module/view
到 主视图 (app.html) - 如果没有数据,错误并且没有传递 Id 那么
redirect
到no-form view
场景:
用户 A 导航到 "FormDesigner/#/form/3E7689F1-64F8-A5DA0099D992",此时 "A" 登陆表单页面,现在如果成功并且数据 已经 返回通过 formId
到其他地方的不同方法,然后加载到 module/view
- Pages,可能使用 <compose></compose>
这可能真的很简单,但文档(在我看来)似乎相当限于新手。
非常感谢任何 guidance/high 级别的概念,一如既往,非常感谢!
此致,
听起来您可能只想参与路由生命周期
如果您要导航到一个模块,您可以在视图模型上创建一个 activate
方法,该方法将在路由开始时调用。
在这种方法中,您可以 return 承诺(当您获取数据时)并在获取失败时重定向
实际上如果promise被拒绝,路由也会被取消
如果成功,您可以使用任何需要加载到模块中的方法(假设它不能只是正在加载的模块的一部分,因为路由不会被取消)
类似
activate(args, config) {
this.http.get(URL).then(resp => {
if (resp.isOk) {
// Do stuff
} else {
// Redirect
}
});
}