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个选择。
或者你把你的绑定键的名字改成childInfoArray
到infoArray
变成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
环境,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个选择。
或者你把你的绑定键的名字改成childInfoArray
到infoArray
变成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