Javascript 奥雷利亚动载荷

Javascript 奥雷利亚动载荷,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

Aurelia是否有可能使用他的viewmodel动态加载视图? 例如,我有一个模块列表,单击其中一个模块,目标视图将加载到页面中。列表是未知的,所以我不能加载所有模块

model example.js

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(上面的链接)——我想这就是你想要的。如果我误解了问题,请提前道歉好的,但这正是我想要的,谢谢!