Модульная система с собственным провайдером навигации - PullRequest
0 голосов
/ 05 марта 2020

Я использую ABP Zero для создания нового приложения и пошел по пути использования модульного подхода для подключения других веб-проектов к основному приложению.

Приведенный ниже код прекрасно работает для добавления в службы , просмотры и контроллеры.

[DependsOn(
    typeof(DocumentsApplicationModule))]
public class DocumentsWebModule : AbpModule
{

    public override void PreInitialize()
    {
        //add in navigation
        Configuration.Navigation.Providers.Add<NavigationProvider>();

        //add in js for module views
        Configuration.EmbeddedResources.Sources.Add(
            new EmbeddedResourceSet(
                "/ModuleResources/",
                Assembly.GetExecutingAssembly(),
                "Documents.Web.ModuleResources"
            )
        );

        //add the dynamic api for the module
        Configuration.Modules.AbpAspNetCore()
            .CreateControllersForAppServices(
            typeof(DocumentsApplicationModule).GetAssembly(),
            moduleName: "doc",
            useConventionalHttpVerbs: true
        );
    }

    public override void Initialize()
    {
        IocManager.RegisterAssemblyByConvention(typeof(DocumentsWebModule).GetAssembly());
    }
}

Тем не менее, я бы хотел, чтобы у каждого модуля было свое собственное меню и замена текущего провайдера навигации при просмотре. Кажется, я не могу найти какую-либо документацию о том, как этого добиться.

Main Menu

Таким образом, как показано, элемент документов добавляется в основной поставщик навигации и когда это Я хочу, чтобы все меню изменилось.

...