gpt4 book ai didi

javascript - Nativescript 将参数传递给触发的事件

转载 作者:行者123 更新时间:2023-12-01 01:00:14 26 4
gpt4 key购买 nike

我正在使用nativescript vue。尝试将参数传递给专业 ui - raddataform 触发事件以防止重复代码。

https://docs.nativescript.org/ns-ui-api-reference/classes/raddataform#propertycommittedevent

这就是我的 raddataforms 布局的样子。您可以在每个 RadDataForm 上看到,事件 @propertyCommissed 函数都有单独的要触发的函数。

 <StackLayout>
<RadDataForm
:source="aimTarget"
@propertyCommitted="aimTargetCommitted"
:metadata="aimTargetMetadata">
</RadDataForm>
<RadDataForm
:source="fasterAimHot"
@propertyCommitted="fasterAimHotCommitted"
:metadata="fasterAimHotMetadata">
</RadDataForm>
<RadDataForm
:source="runeAimerCrosshair"
@propertyCommitted="runeAimerCrosshairCommitted"
:metadata="runeAimerCrosshairMetadata">
</RadDataForm>
</StackLayout>

对于每个此事件,都有一个如下所示的方法。

attackMonstersCommitted (data) {

let edited = data.object.editedObject; // it has to be performed to update radDataForm with new value object
let tab = "attackerTab"; // to know which tab to edit
let name = "attackMonsters";
let property = data.object.getPropertyByName(data.propertyName);

console.dir("valueCandidate - " + property.name);
this.$store.commit('updateRadData', { edited , tab, name } ) // update raddataform

this.$update.propertyCommitted();

},

因此,有 4 个 RadDataforms 和每个 RadDataforms 4 个方法。是否有可能传递参数,类似这样。

<RadDataForm
:source="aimTarget"
myParameter1="PARAM1"
@propertyCommitted="aimTargetCommitted"
:metadata="aimTargetMetadata">
</RadDataForm>

或者类似的东西

<RadDataForm
:source="aimTarget"
@propertyCommitted="aimTargetCommitted(PARAM1,PARAM2)"
:metadata="aimTargetMetadata">
</RadDataForm>

然后在方法中以某种方式获取该参数的值?然后我将能够对所有 raddataforms 使用一种方法

最佳答案

您可以传递额外的参数和事件数据,

<RadDataForm
:source="aimTarget"
@propertyCommitted="aimTargetCommitted($event, 'param1', 'param2')"
:metadata="aimTargetMetadata">
</RadDataForm>

其中 $event 表示默认事件对象。

关于javascript - Nativescript 将参数传递给触发的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56149492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com