0

我正在尝试在 iView ui 中应用单击事件。这是我正在尝试的:

<DropdownMenu slot="list">
     <DropdownItem @on-click="markAsRead">Mark as read</DropdownItem>
</DropdownMenu>

该方法markAsRead不运行。我怎样才能让它运行?

4

3 回答 3

2

关于 Dropdown 的 iView 文档中,您可以看到当用户单击 Dropdown Item 时,Dropdown 会触发单击事件,该事件以 Dropdown Item 的“名称”作为其参数。

<Dropdown>对于 Dropdown,您可以在(不是 on<DropdownMenu>和 not on )上使用“on-click”事件(不是本机“click”事件<DropdownItem>)。所以你的代码应该是这样的:

<Dropdown @on-click = "setReadStatus(name)">
    <a href="javascript:void(0)">
        Mark as read/unread
        <Icon type="ios-arrow-down"></Icon>
    </a>
    <DropdownMenu slot="list">
        <DropdownItem :name="read">Mark as read</DropdownItem>
        <DropdownItem :name="unread">Mark as unread</DropdownItem>
    </DropdownMenu>
</Dropdown>
于 2019-01-17T17:09:58.453 回答
0

您应该使用@click 或 v-on:click。

这将起作用:

<DropdownMenu slot="list">
     <DropdownItem v-on:click="markAsRead">Mark as read</DropdownItem>
</DropdownMenu>

更多关于 VueJS 事件

于 2018-09-23T08:08:52.837 回答
0

参考这里的文档http://v3.iviewui.com/components/dropdown-en Dropdown 元素会发出一个“点击”事件,并带有被点击的下拉项目的名称

您需要确保两件事 1. 在 DropdownItem 元素上设置 name 属性 2. 捕获 Dropdown 元素上的点击事件,并像通常处理事件数据一样将 $event 作为参数传递。

这是代码的样子

<Dropdown v-on:on-click="handleDropdownClick($event)">
 <DropdownMenu slot="list">
  <DropdownItem name="Mark as read">Mark as read</DropdownItem>
 </DropdownMenu>
</Dropdown

单击下拉菜单项。您将获得“标记为已读”作为 $event 的值。

于 2020-01-23T11:30:51.157 回答