我有一个 Controller 和一个组件。呈现组件时,将以以下方式传递该组件:

{{modal-filter feature=feature parentController=this.controller}}

其中feature是通过 Controller 传递到 Handlebars 的参数,parentController是 Controller 。

现在,在 Controller 本身中,有一个属性(一个数组)。让我们将该数组称为requiredValues。

现在,在 Controller /组件本身中,我们可以轻松设置:
valueObserver : function(){
     ...
}.observes('requiredValues')

但是,我需要从模态滤波器组件中观察该 Controller 属性。因此,在模态滤波器组件中,我将把什么作为观察者函数:
valueObserver : function(){
     ...
}.observes(???)

最佳答案

您不应该做的事,但我会告诉您如何确保完整性

如果您要传入 Controller ,则可以只在parentController属性上观看一个项目,尽管我完全不推荐

valueObserver : function(){
     ...
}.observes('parentController.requiredValues')

这将假定整个数组都将被替换,而不仅仅是添加或更改一个项目。

添加或删除的项目
valueObserver : function(){
     ...
}.observes('parentController.requiredValues.[]')

Item Property foo在requiredValues项之一上更改
valueObserver : function(){
     ...
}.observes('[email protected]')

你应该怎么做

无需传递 Controller ,只需传递属性并观察属性即可。
{{modal-filter feature=feature property=someProperty}}


propertyObserver : Ember.observer('property', function(){
     ...
})

关于ember.js - Ember组件可以观察到 Controller 属性吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26103711/

10-12 00:00
查看更多