2015-09-10 2 views
0

Есть ли способ структурирования AngularJS/записи по модульному принципу, что динамически нагрузки/требуютcontrollers/views в зависимости от страницы маршрутов в SystemJS?Динамическая загрузка AngularJS контроллеров/просмотров с использованием SystemJS

EDIT: Это то, что я в настоящее время, как испытание, чтобы использовать SystemJS

app.js - это главный файл, который получает импорт в index.html

// vendor 
import angular from 'angular'; 

//Controllers 
import controllers from './controllers/_index.js' 

// Routes 
import routes from './routes/routes.config.js'; 

var seedApp = angular.module('seedApp', ['seedApp.route', 'seedApp.controllers']); 


angular.element(document).ready(function() { 
    return angular.bootstrap(document.body, [seedApp.name], { 
     strictDi: true 
    }); 
}); 

export default seedApp; 

_index.js - индекс для всех контроллеров

import { navCtrl } from './nav.js'; 
import { aboutCtrl } from './about.js'; 

var app = angular.module('seedApp.controllers', []); 

app.controller('navCtrl', navCtrl); 
app.controller('aboutCtrl', aboutCtrl); 

routes.config.js

import 'angular-ui-router'; 

var app = angular.module('seedApp.route', ['ui.router']); 


app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) { 

    $urlRouterProvider.otherwise('/'); 

    $stateProvider 
     .state('home', { 
      url: '/', 
      templateUrl: 'app/views/home.html' 
     }) 
     .state('about', { 
      url: '/about', 
      templateUrl: 'app/views/about.html', 
      controller: 'aboutCtrl as about' 
     }); 
}]); 

export default app; 
+0

Да, было бы. Что вы пробовали? – Jorg

+0

Я отредактировал вопрос с некоторой дополнительной информацией. Я предположил, что использование системного модуля Babel автоматически сделает все динамичным через system.register. Однако, с другой стороны, поскольку я загружаю все угловые модули сразу, это может не сработать. Отсюда возникает этот вопрос. – cusX

ответ

0

NO Короткий ответ. Длинный ответ YES, но вам нужно использовать угловой плагин ocLayzLoad, потому что это не поддерживается с помощью Angular 1.x (это возможно в Angular 2.x). Btw, если вы пытаетесь динамически загружать файл, вам необходимо использовать System.import

Надеюсь, что это помогло.

Смежные вопросы