我有一个组件,我传递了一些静态和动态参数。组件在交互期间更新这些静态值。当实现组件更新动态参数时,将重置所有静态参数。我希望该组件保留更新的值。
我已经实现了一个只在init期间设置这些值的工作,但我想知道这是否是预期的行为。
答案 0 :(得分:1)
在ember-twiddle示例中... showYield=false
静态值false
通过渲染后的动作进行更改。然后更新时间操作在父上下文(控制器)中更改time
,导致组件模板重绘(这似乎具有将showYield
重置回false
的副作用。)< / p>
自从time
更改并且time
传递给组件后,即使false
设置为showYield
,组件也会使用true
重新呈现动作处理程序{{#outer-component time=time showYield=false}}
因此,最初showYield为false,当传递给组件时,组件具有在组件的上下文中更改showYield的操作。 false
始终是假的,它是静态的。因此,在外部上下文(传递到组件中)中更改下一个time
,然后(重新)将其传递回组件模板。由于静态值也被(重新)传递回组件,因此它有效地重置。
我不认为您想要混合组件的静态值和动态值。也许在属性中将showYield
的默认值定义为false
;并使用该属性而不是静态值showYield=property
。