4

私はElementUi NavMenuを使用しておりcreateElement、.vueファイルではなく、メニューのタイトルとインデックスを含むJSON、HTMLおよびJSファイルのみを使用して、メニューの項目を作成する方法でrender関数を使用しています。

メニューがマウントされ、クリックするとサブメニューが表示されますが、サブメニュー (el-menu-item) のアクションが機能しません。メニュー項目の作成時に属性クリック、アイテムクリック、v-on:クリックを試してみました(ElementUiのドキュメントでは@click使用する必要があることが示されていますが、これによりcreateElement属性が定義されているときにエラーが発生します)が、誰もメソッドが宣言されていないかのように、エラーは発生しません。

el-menu-item では属性のみonclickが機能しますが、それを使用すると vue コンポーネントのメソッドが呼び出されないため、コンポーネントの外部 (たとえばクラス) で関数を作成する必要があり、この関数がコンポーネントメソッドの呼び出しを実行し(私は $ エミットを試みます)、コンポーネントのメソッドが見つからないため、エラーが発生します。

@click同じコンポーネントのメソッドを呼び出すために、コンポーネントのレンダリング関数内のel-menu-itemに(または同様の)イベントを追加するにはどうすればよいですか?

ElementUI の NavMenu のドキュメント

メニュー項目の作成方法:

createElement("el-menu-item",{
    attrs:{
        index:json[i].id,
        click:json[i].onclick
    }},
    json[i].title
)
4

1 に答える 1