参考以下帖子StackOverflow 问题我有一个完全不同的场景,我想知道 Aurelia 是否有解决方案。
设想:
我有一个用户模型:
export class User{
@bindable name: string;
@bindable address: Address
如您所见,“地址”是一个子模型。
我有一个主视图模型“注册”。在这个视图模型中,我有一个模型“用户”:
export class RegistrationView{
@bindable user: User
public attached(){
this.user = userService.fetchUserFromApi();
}
除此之外,我还有一个自定义元素“用户地址”,其中我有一个“用户地址”模型(因为我想要专门封装的自定义元素)。
export class userAddress{
@bindable userAddress: Address
现在我只想从 API 请求用户模型一次并将用户地址发送到自定义元素:
<template>
<require from="user-address"></require>
<user-address user.address.bind="${dj.address}"></user-address>
最后,如果用户已经加载,我将(拥有可以在任何地方使用的专用封装自定义元素)检查附加方法,如果没有,则自定义元素将加载所有需要的数据:
export class userAddress{
@bindable userId: string
@bindable address: Address
public attached(){
if(!(typeof this.address === "undefined")){
this.address = this.addressAPIService.getAddressByUserId(id)
}
}
- 问题 1:我知道,上面提到的模板
dj.address.bind
不起作用。但现在我的问题是,我该如何处理这种情况? - 问题 2:我如何保证用户对象只被请求一次?
- 我的概念有意义吗?这是否是 Aurelia 的想法?