Ember.js的新功能。如何让组件从控制器继承几个属性?
我想创建强大的组件,将委派给各种属性的控制器。我知道我可以像这样绑定各个属性,但看起来很冗长。
{{#my-component attr1=attr1 attr2=attr2}}
Hello
{{/my-component}}
看起来好像它可能是一个普遍的情况想要委托一切到控制器。有推荐的模式吗?
Ember.js的新功能。如何让组件从控制器继承几个属性?
我想创建强大的组件,将委派给各种属性的控制器。我知道我可以像这样绑定各个属性,但看起来很冗长。
{{#my-component attr1=attr1 attr2=attr2}}
Hello
{{/my-component}}
看起来好像它可能是一个普遍的情况想要委托一切到控制器。有推荐的模式吗?
您的示例代码将被视为正确的方式。
你可以在技术上通过在一个单一的对象(可能来自控制器组成),但我会建议针对。 A组分真的不应该很了解其中的数据是从作为attR1位可能是一个模型属性和attR2可能是和做某种计算的视图的属性来。通过传入单个对象,可以限制组件的灵活性。
除了灵活性,我倾向于选择长期参数列表,因为它是明确你的组件接受的东西;即使它有点冗长。如果您的组件正在一个巨大的参数列表它可能是一个迹象,表明组件试图做太多,你可能想要把它分解成更小的组件。
App.MyComponentComponent = Ember.Component.extend({
attr1: function() {
return this.get('targetObject.attr1');
}.property('targetObject.attr1'),
attr2: function() {
return this.get('targetObject.attr2');
}.property('targetObject.attr2')
});
从Ember docs: “如果组件当前插入到父视图的DOM中,此属性将指向父视图的控制器”。
请谨慎使用。