Вы используете Angular UI Router, так будет легко.Создайте два отдельных состояния, например, для пакета 1, приложения 1 и для пакета 2, приложения 2, как показано ниже:
$stateProvider
.state('app1', {
abstract: true,
url: '/app1',
template: '<div ui-view></div>'
});
$stateProvider
.state('app2', {
abstract: true,
url: '/app2',
template: '<div ui-view></div>'
})
После этого используйте библиотеку oclazyload , чтобы загрузить пакеты для разных состояний, как показанониже:
$stateProvider
.state('app1', {
abstract: true,
url: '/app1',
template: '<div ui-view></div>',
resolve: {
plugins: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load([
'~/bundles/bundle1.js'
]);
}]
}
});
$stateProvider
.state('app2', {
abstract: true,
url: '/app2',
template: '<div ui-view></div>',
resolve: {
plugins: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load([
'~/bundles/bundle2.js'
]);
}]
}
})
Теперь у вас есть два разных состояния, работающих с двумя разными пакетами.Я реализовал это в одном из моих проектов, и он работает безупречно.
Обновление:
angular
.module('myApp')
.config(['$stateProvider', function($stateProvider) {
$stateProvider
.state('app1', {
abstract: true,
url: '/app1',
template: '<div ui-view></div>',
resolve: {
plugins: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load([
'~/bundles/bundle1.js'
]);
}]
}
})
.state('app2', {
abstract: true,
url: '/app2',
template: '<div ui-view></div>',
resolve: {
plugins: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load([
'~/bundles/bundle2.js'
]);
}]
}
})
}])