在计算属性上设置mut

时间:2017-01-31 17:50:22

标签: ember.js

我有一个父组件需要对子组件进行验证:

// parent component.js

isValid: computed.and('child1Valid','child2Valid', ...),
child1Valid: null,
child2Valid: null,
...

// parent template

{{ child1 
    prop1=true 
    prop2=false 
    childIsValidated: (mut child1Valid) 
}}

因此,父级可以改变其childIsValidated属性,并且更改应传播到其父级child1Valid属性。

// child1 component.js

prop1: null,
prop2: null,
childIsValidated: computed.or('prop1','prop2')

据我所知,父母无意中传递(并覆盖)childIsValidated。我可以以某种方式说childIsValidated是否被计算并且是父{q} child1Valid属性的一种别名?

1 个答案:

答案 0 :(得分:1)

这是不可能的,因为对象键不能同时是两个不同的函数(computed.or vs computed.alias)。

此外,Ember在通过模板时故意覆盖属性(如果它并不是你的prop1和prop2在子组件中仍然为null)

一些替代解决方案包括将观察者放在prop1和amp; prop2并在更改时设置child1Validated。

或者,当每个道具发生变化时,您可能会将操作传递回组件

相关问题