Obszary Durandal i MVC4 dla wielu SPA

Mam aplikację internetową mvc4 z obszarami, dla mojej organizacji każdy obszar reprezentuje SPA i poprzez „Zarządzaj pakietem NuGet” zainstalowałem „Durandal 1.2.0”, „Durandal Transitions 1.2.0” i „Durandal Router 1.2.0”. Zorganizowałem foldery i zamknąłem „widoki” i „viewmodels” z folderu „App” Durandala i umieściłem nowe widoki w folderze „VIews” obszaru mvc4, na przykład:

Obszary -> NewArea -> Widoki -> ControllerFolder -> widoki -> shell.html

Następnie umieściłem „viewmodels” w folderze „Skrypt”, na przykład:

Skrypty -> NewArea -> ControllerFolder -> viewmodels -> shell.js

Skrypty -> NewArea -> ControllerFolder -> main.js

Następnie zmieniłam ścieżki dla JS of durandal, na przykład w main.js:

define(['../../../App/durandal/app',
    '../../../App/durandal/viewLocator',
    '../../../App/durandal/system',
    '../../../App/durandal/plugins/router',
    '../../../App/services/logger'],

I zmieniłem main.js w następnej linii:

viewLocator.useConvention('viewmodels', '../Areas/NewArea/Views/ControllerFolder/views');

Ale konfiguracja folderów kończy się niepowodzeniem, ponieważ następny wiersz wywołuje w swojej definicji różne czasy modułu „viewLocator” i przepisuje konfigurację „useConvention” z wartością domyślną:

app.setRoot('viewmodels/shell', 'entrance');

Takie zachowanie ma miejsce tylko wtedy, gdy foldery „widoki” i „viewmodele” nie pozostają w folderze „App” „Durandal”.

Pomóż mi, jak mieć różne SPA w tym samym projekcie?

questionAnswers(2)

yourAnswerToTheQuestion