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?