请原谅我的无知,但我刚刚开始使用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);
};
}
现在我可以看到/接收那些很棒的数据但是在深入研究文档后我似乎无法弄清楚:
module/view
加载到主视图(app.html)redirect
到no-form view
情境:
用户A导航到“FormDesigner /#/ form / 3E7689F1-64F8-A5DA0099D992”,此时“A”落在表单页面上,现在如果成功并且数据已返回通过{ {1}}在其他地方使用其他方法然后加载formId
- 页面,可能使用module/view
这可能非常简单,但文档(在我看来)似乎仅限于那些 new 的人。
非常感谢任何指导/高级概念,一如既往,非常感谢!
此致
答案 0 :(得分:0)
听起来您可能只想参与路由生命周期
如果要导航到模块,可以在视图模型上创建activate(args, config) {
this.http.get(URL).then(resp => {
if (resp.isOk) {
// Do stuff
} else {
// Redirect
}
});
}
方法,该方法将在路由开始时调用。
在此方法中,您可以返回承诺(在获取数据时),并在获取失败时重定向
事实上,如果承诺被拒绝,路由将被取消
如果成功,您可以使用在模块中加载所需的任何方法(假设它不能成为正在加载的模块的一部分,因为路由不会被取消)
像
这样的东西{{1}}