Javascript 奥雷利亚动载荷
Aurelia是否有可能使用他的viewmodel动态加载视图? 例如,我有一个模块列表,单击其中一个模块,目标视图将加载到页面中。列表是未知的,所以我不能加载所有模块 model example.jsJavascript 奥雷利亚动载荷,javascript,aurelia,Javascript,Aurelia,Aurelia是否有可能使用他的viewmodel动态加载视图? 例如,我有一个模块列表,单击其中一个模块,目标视图将加载到页面中。列表是未知的,所以我不能加载所有模块 model example.js export class Modules{ list = []; constructor(socket) { socket.on('update', list => this.list); } select(module) { //load and di
export class Modules{
list = [];
constructor(socket) {
socket.on('update', list => this.list);
}
select(module) {
//load and display the module view
}
}
查看example.html
<template>
<ul>
<li repeat.for="module of list" click.delegate="$parent.select(module)">${module.name}</li>
</ul>
<div class="target">
<!-- Here should be loaded the module -->
</div>
</template>
- ${module.name}
方法1
在你的app.js
类的configureRouter
方法中加载数据。加载数据后,您可以配置路由器。只需确保从configureRouter
返回承诺即可
方法2
使用Aurelia的
元素以适当的视图组成所选模块
以及守则:
app.js
从“aurelia框架”导入{inject};
从“./mock socket”导入{MockSocket};
@注入(模拟套接字)
导出类应用程序{
列表
选择模块;
构造函数(套接字){
socket.on('update',list=>this.list=list);
}
选择(模块){
this.selectedModule=模块;
}
}
app.html
-
${module.path}
模块列表包含哪些内容?表示模块id/url或对象(实际模块实例)的字符串?@JeremyDanOw-这是一个对象数组,对象有一个属性存储模块的路径谢谢,这是正确的方法!但是我如何定义视图应该使用哪个模型呢?我试图用
在视图中定义它,但它不起作用。您是说您有一些数据要传递给所选视图模型/视图吗?使用属性view.bind=“”
我可以定义要使用的视图,但是我如何定义视图应该使用哪种模型呢?也许您正在查看我的答案的原始版本中的代码,这是在您更改关于模块列表所包含内容的注释之前发布的。我想您最初说过,模块列表是对象,具有视图属性和视图的url。然后您修改了它,说它是一个对象列表,其中一个属性存储模块路径。看看最近的plunker(上面的链接)——我想这就是你想要的。如果我误解了问题,请提前道歉好的,但这正是我想要的,谢谢!