【发布时间】:2019-05-15 12:35:05
【问题描述】:
我正在使用原生脚本 vue。试图将参数传递给专业 ui - raddataform 触发事件以防止重复代码。
https://docs.nativescript.org/ns-ui-api-reference/classes/raddataform#propertycommittedevent
这就是我的 raddataforms 布局的外观。您可以在每个 RadDataForm 上看到单独的事件 @propertyCommitted 函数要触发。
<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>
对于每个 this 事件,都有一个看起来像这样的方法。
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 和 4 个方法。是否有可能传递参数,像这样。
<RadDataForm
:source="aimTarget"
myParameter1="PARAM1"
@propertyCommitted="aimTargetCommitted"
:metadata="aimTargetMetadata">
</RadDataForm>
或者类似的东西
<RadDataForm
:source="aimTarget"
@propertyCommitted="aimTargetCommitted(PARAM1,PARAM2)"
:metadata="aimTargetMetadata">
</RadDataForm>
然后在方法中以某种方式获取此参数的值? 然后我将能够对所有 raddataforms 使用一种方法
【问题讨论】:
标签: javascript vue.js nativescript