双向绑定2个子组件

时间:2018-08-05 03:10:58

标签: typescript aurelia aurelia-binding two-way-binding

以下模型可以正常工作,我有一个prent组件(app.html + .ts)一个子组件(test-binding.html + .ts)和一个带有双向绑定的输入字段

父组件

1

test-bindable.html

<template bindable="query">
    <require from="./test-bindable"></require>

    <input type="text" value.bind="query"/>
    <test-bindable query.bind="query"></test-bindable>

</template>

test-bindable.ts

<template>
    <div>${query}</div>
</template>

但是,我不确定如何使用2个子自定义组件来实现相同的功能。我可以使用eventAggregator轻松实现相同目标,并在子组件中侦听要触发的事件,但是,我试图通过两种方式实现相同的功能。例如:

父组件(app.html)

import { bindable } from 'aurelia-framework';

export class TestBindable{
@bindable query = 'potato';

valueChange(newValue, oldValue)
{
    //Do something
}
created(){
    console.log('test component created');
}
}

test-input.html

<template bindable="query">
    <require from="./test-bindable"></require>
    <require from="./test-input"></require>

    <test-input value.bind="query"></test-bindable>
    <test-bindable query.bind="query"></test-bindable>
</template>

test-input.ts

<template>
    input type="text" value.bind="test"/>
</template>

1 个答案:

答案 0 :(得分:1)

这里要注意的是,k8s.io/client-go(使用bindable)的默认绑定模式实际上是bind。 如果您希望两个组件都“互相交谈”,只需在绑定中指定one-way。 将two-waytest-input绑定就足够了,因为他是唯一实际更改输入的人。

two-way