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

标签 javascript vue.js nativescript

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

相关文章:

javascript - 为什么要在 Array.prototype.forEach() 中检查 null?

javascript - TailwindCss 固定导航栏

vue.js - vue-chartjs react 数据错误

javascript - 如何向 Vue 路由器路径添加 float 验证?

javascript - Nativescript ListView 刷新

javascript - NativeScript 中的 Accordion

javascript - 使用 Node.js Express 更新加载的值

javascript - 在这种情况下,为什么我必须单击两次才能加载图像?

javascript - 用于检查字符串是否为 a-zA-Z0-9 的正则表达式

android - 使用 ng-template 问题的 ListView 内部的 ScrollView