2017-03-02 67 views
0

官方Ember Guide about actions强调,在操作助手中使用value命名参数可以解构作为动作参数传递的对象。我的问题是,这种情况下,只适用于第一个参数,但失败的行动的其余参数。作为灰烬传递的解构对象动作参数

请参阅twiddle我已准备好说明情况。在这个简单的旋转中,my-component触发按钮单击后的动作,并且application控制器处理动作。从application.hbs内可以看出,我宣布的行动为(action 'actionHandler' value='name');这意味着我希望将动作参数的名称字段发送到application.js内的动作处理程序。但是从显示的警报中可以看出; value参数正在为该操作的第一个参数(john按预期显示)工作;但第二个参数失败(jack不作为动作处理程序的第二个参数进行检索;但检索到整个对象)。

我的问题是;有没有办法在第一个之后解构参数?如果可以,我可以在参数中改变要提取的属性,即第一个参数的name,第二个参数的id等等。

回答

1

答案是否定的。就像你在旋转中显示的那样,你不能在第一个参数后解构参数。 我主要使用此功能时,我想通过说value=target.value从第一个参数eventvalue。在这种情况下,解构只适用于第一个论证,我们可以发送很多不会被解构的论据。

+0

我相信有人会拿出确切的源代码为什么我们不能? – kumkanillam

+1

我从[源代码]找到了这个(https://github.com/emberjs/ember.js/blob/516e93c7745c59748fc237b791b18c908c4b14f7/packages/ember-glimmer/lib/helpers/action.js#L329)。它只处理第一个。 – ykaragol