我正在使用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/