我正在尝试动态渲染我的aurelia视图,在转发器中使用compose并且它工作正常但我的双向绑定无法正常工作。使用compose元素渲染的视图不会更新父视图模型的属性。
我的父视图js文件的代码是
export class Index {
public _items: interfaces.IBaseEntity[];
public data: string;
constructor() {
this._items = new Array<interfaces.IBaseEntity>();
this._items.push(new Address());
this._items.push(new HomeAddress());
}
activate() {
this._items.forEach((entity, index, arr) => {
entity.init();
});
//this.data = "data";
}
}
我的父母html如下。在这个html中我得到了我的两个绑定工作的自定义元素,但没有compose
<template>
<require from="form/my-element"></require>
<div repeat.for="item of _items">
<!--<my-element type.two-way="data" model.two-way="item.model"></my-element>-->
<compose view-model="${item.view}" model.two-way="item.model"></compose>
</div>
</template>
我的孩子视图模型
import * as interfaces from '../interfaces';
import {useView, bindable} from 'aurelia-framework';
export class Address implements interfaces.IBaseEntity {
public view: string = "form/address";
@bindable model: string;
constructor() {
console.log("address constructed - " + this.model);
}
init = (): void => {
this.model = "Address";
}
activate(bindingContext) {
this.model = bindingContext;
console.log("address ativated - " + this.model);
}
}
和子视图html是
<template>
<h2>Address Template</h2>
<input type="text" value.two-way="model" class="form-control" />
</template>
答案 0 :(得分:0)
我现在知道这个问题。我正在将简单的财产传递给我的作品,而这部作品并没有成功。它必须是一个对象