Я нашел хорошего создателя меню для React Js, но все мое приложение находится в AngularJs, поэтому я хочу использовать создание меню только для создания меню домашней страницы, пока Остальные работы выполнит angularjs. Однако я искал решения для этого в Google, но, похоже, ни один из них не решил мою проблему в течение почти 3 дней.
Моя реакция Js функция для создания меню выглядит следующим образом:
import React, { useEffect, useState } from "react";
import {Keys, Menu, MenuBar, Separator} from 'react-app-menu';
function MenuToolBar() {
const handleMenuSelect = (menuId) => {
toggleLoading(true);
setTimeout(() => {
openModal();
setSelectedFile({name: menuId });
}, 500);
};
const [selectedFile, setSelectedFile] = useState({});
const [showModal, toggleModal] = useState(false);
const openModal = () => {
toggleModal(true);
};
const closeModal = () => {
toggleModal(false);
};
const onFolderSelect = (): void => {
console.log('Folder selected');
};
return (<div style={{background: '#FBFBFB', borderBottom: '1px solid rgb(218, 220, 224)'}}>
<MenuBar onSelect={handleMenuSelect}>
<Menu label='File' focusKey={"F"}>
<Menu label='New'>
<Menu menuId='NewNotebook' label='Notebook'}/>
<Menu menuId="NewNote" label='Note' hotKeys={Keys.ctrlAlt('N')}/>
<Separator/>
<Menu label="Folder" hotKeys={Keys.ctrlAlt("F")}
onSelect={onFolderSelect}/>
</Menu>
<Menu label='Settings' hotKeys={Keys.altShift("S")}/>
</Menu>
<Menu label='Edit' focusKey='E'>
<Menu menuId='search' label='Search' hotKeys={Keys.ctrlShift('F')}/>
<Menu menuId='undo' label='Undo' hotKeys={Keys.ctrl('Z')}/>
<Menu menuId='rename' label='Rename' hotKeys={Keys.shift('F6')}/>
</Menu>
<Menu label='View' focusKey='V'>
<Menu menuId='toolbar' label='Toolbars' checked={showToolbar} hotKeys={Keys.ctrlAlt("T")}/>
<Menu menuId='statusBar' label='StatusBar'/>
<Menu menuId='toolTips' label='Tooltips' checked={showTooltip} hotKeys={Keys.ctrlAltShift("T")}/>
</Menu>
</MenuBar>
</div>);
}
Я устал использовать директивы, потому что это angular, но застрял
Angularjs Директива ниже: -
angular.module( "Demo" ).directive(
"reactMenu",
function reactMenuDirective( ReactMenu ) {
return({
link: link,
scope: {
menu: "=",
onMenuClick: "&"
}
});
function link( scope, element, attributes ) {
scope.$watch( "menu", renderReactElement );
scope.$on( "$destroy", unmountReactElement );
function renderReactElement() {
var props = {
menu: scope.menu,
onMenuClick: function( menuId ) {
scope.$apply(
function changeViewModel() {
scope.onMenuClick({
like: menuId
});
}
);
}
};
React.render(
React.createElement( ReactMenu, props ),
element[ 0 ]
);
}
function unmountReactElement() {
React.unmountComponentAtNode( element[ 0 ] );
}
}
}
);
Любая помощь о том, как достичь этого в AngularJs с React?