私は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に(または同様の)イベントを追加するにはどうすればよいですか?
メニュー項目の作成方法:
createElement("el-menu-item",{
attrs:{
index:json[i].id,
click:json[i].onclick
}},
json[i].title
)