Emblem.js 中子组件的数据向下绑定

Data down binding for child components in Emblem.js

环境,Ember w/ Emblem.js

在一个项目上工作,我试图将其模块化以根据用户的选择动态引入正确的表单布局(子组件)。

我遇到的问题是我有一个子组件,它引用了父组件中的可变对象,我正在尝试访问该组件以进行读取和写入。

我认为我需要将数据向下绑定,然后根据 DDAU 将 mut 操作推回到父级。

JS
Parent.js

export default Ember.Component.extend({
store: Ember.inject.service(),
name: null,
infoArray: Ember.computed.map(....),
isVisibleChild1: false;
actions: {
    picker() {
        if(dropdown.value==1)
            this.set('isVisibleChild1', true);
    }
},

Child1.js

needs to contain a variable childInfoArray somewhere

我在网上找到了用 hbs 将数据从父表单绑定到子表单

{{Child1 childInfoArray=infoArray}}

但我使用的是 Emblem.js 而不是 hbs

Emblem.js
Parent.emblem

if isVisibleChild1
    = Child1
    childInfoArray = infoArray

Child1.emblem 我知道 infoArray 应该是 childInfoArray

select id="newInfo" onchange={action (mut infoArray) value="target.value"}
    each optionsArray as |selectOption|
        option selected={is-equal selectOption.key infoArray} value="#{selectOption.key}" = selectOption.value

我不确定 childInfoArray 应该放在 Child1.js 中的什么位置,我也不完全确定如何将它绑定到 Child1.emblem

中的对象

任何帮助都会很棒!

有趣的旁注,我有几个文本输入字段和日期时间选择器。

日期时间选择器在将数据保存到数据库时被父组件选择,但输入字段显示没有对象绑定到它们。

这里的想法是您无权访问 Child1.emblem 文件中的 infoArray。您将父级 infoArray 绑定到 childInfoArray。所以2个选择。

或者你把你的绑定键的名字改成childInfoArrayinfoArray变成Parent.emblem:

if isVisibleChild1
    = Child1
    infoArray = infoArray

或者你用合适的键进入Child1.emblem:

select id="newInfo" onchange={action (mut childInfoArray) value="target.value"}

有帮助吗?

我想通了,使用 = 我可以通过 Emblem 发送任何经典车把,解决方案比我想象的要简单得多

Child1.js

export default Ember.Component.extend({
    infoArray:null,
}

Parent.emblem

if isVisibleChild1
    = Child1 infoArray=infoArray

Child1.emblem

select id="newInfo" onchange={action (mut infoArray) value="target.value"}

我可以这样绑定所有东西

= Child1 infoArray=infoArray property2=property2 myFunction=myFunction