所以根据标题基于数据动态渲染UI到DOM here(向下滚动一下)。
<template repeat.for="item of items">
<compose model.bind="item" view-model="widgets/${item.type}"></compose>
</template>
如果你更简单地说:
<compose model.bind="item" view-model="itemViewModel.js"></compose>
如果我有itemViewModel.html
和itemViewModel.js
,则它们都会成功加载。但是,如何访问itemViewModel.js
中的绑定模型?
我尝试使用bindable
。
import {bindable, bindingMode} from 'aurelia-framework';
export class ItemViewModel {
@bindable model;
constructor() {
console.log("using bindable", this);
}
}
这可能吗?
答案 0 :(得分:5)
<compose model.bind="item"
会在您的视图模型中调用方法activate(model)
并为您提供item
。
// the model received here is the *item* from the above <compose
activate(model){
this.model = model;
}
如果你想在绑定中传递多个模型,你可以做
<compose model.bind="{item: item, value: value}"
然后你得到:
activate(model){
this.item = model.item;
this.value = model.value;
}