如何手动(在.js
文件中,而不是.hbs
)将组件中的绑定连接到父视图的控制器?
根据documentation,您似乎应该能够将组件属性绑定到父视图的控制器属性。我知道我将描述的方法曾经起作用(围绕Ember v1.5)。
var binding = Ember.Binding.from('inputValue').to('parentView.controller.outputValue');
binding.connect(this);
但现在,parentView
和controller
不存在。它们似乎已重命名为_parentView
和_controller
,这向我建议,它不是一种将组件中的值绑定到其父控制器的“祝福”方式。
所以有人知道是否有办法做到这一点,除了用大量丑陋的代码篡改你的.hbs
佣人?
{{component-helper ComponentVar1=ContollerVar1 ComponentVar2=ContollerVar2 ComponentVar3=ContollerVar3}}
// vs.
{{component-helper}}
就个人而言,我只需要一个方向的值(如我尝试使用Ember.Binding
手动连接时所示)。因此,通过.hbs
文件中的帮助程序执行此操作不仅更加丑陋,而且还会不必要地创建双向绑定(我认为)。
答案 0 :(得分:0)
在将我的组件翻译成视图之后,我意识到这可能是"祝福"这种绑定方式。
所以,是的,可能使用_parentView
和_controller
的下划线版本,但可能更好来翻译你的将组件放入视图中,parentView
和component
仍可访问。
Ember团队非常擅长让最佳实践感觉正确,其他一切都感觉不对。
我想任何发现这个问题并且需要澄清的人,Ember.Component
应该是模块化的。您应该能够从一个项目中获取它并将其放入另一个项目中并使其全部工作。因此,根据您刚刚在给定项目中使用的内容手动创建绑定有点不对。
切换到具有已定义模板的视图意味着您无论如何都会受到控制器的支配,因此看似合法。