Aurelia撰写bind.two-way无法正常工作

时间:2016-08-04 13:32:09

标签: aurelia aurelia-binding

我正在尝试动态渲染我的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>

1 个答案:

答案 0 :(得分:0)

我现在知道这个问题。我正在将简单的财产传递给我的作品,而这部作品并没有成功。它必须是一个对象