2014-03-15 6 views
1

Я новичок в Угловом мире и в настоящее время пытаюсь завершить чистый проект для нашего проекта ASP.NET MVC, в соответствии с чем каждый Угловой контроллер находится в отдельном файле. Мой вопрос в том, можно ли ленить нагрузку на Угловые контроллеры? В настоящее время я борюсь с RequireJS. Мое доказательство концептуального кода выглядит следующим образом:Ленивая загрузка угловых контроллеров с использованием RequireJS

CSHTML VIEW - Index.cshtml

<script src="~/Scripts/Controllers/mainController.js"></script> 
<div class="row" ng-controller="MainController"> 
    <div class="col-md-4"> 
     <span>{{1+1}}</span> 

     Message Test: {{testmessage}} 
     <button ng-click="ucase()">Upper</button> 
</div> 

_Layout.cshtml (первая линия только шоу нг-приложение)

<html ng-app="mainModule"> 

app.js

var mainModule = angular.module("mainModule", []); 

mainController.js

angular.module('mainModule').controller('MainController', ['$scope', function ($scope) { 
    $scope.testmessage = "hello world!"; 
    $scope.ucase = function() { 
     $scope.testmessage = angular.uppercase($scope.testmessage); 
    } 
}]); 

Как я могу избавиться от ссылки на mainController.js в файле Index.cshtml? Есть ли способ ленивой загрузки контроллера, когда это необходимо? Может ли это потребоватьJS?

+0

Возможно, это поможет вам: http://ify.io/lazy-loading-in-angularjs/ – Cherniv

+0

requirejs можно использовать, и я использовал его в некоторых старых проектах. Однако в эти дни я предпочитаю использовать grunt и комбинировать все js в одном файле js, который включен в html. Это позволяет разделять контроллеры, службы, директивы для разделения файлов и избегать использования requirejs. –

ответ

1

В конце концов, я был в состоянии осуществить отложенную загрузку угловых модулей в моем РОС проекта с помощью ocLazyLoader:

https://github.com/ocombe/ocLazyLoad

http://plnkr.co/edit/aGxuXMiPgYA0TFc67YL4 (демо)

Однако, я до сих пор не уверен в том, мы будем реализовывать это в будущем.

+1

Не стесняйтесь взглянуть на ocLazyLoad, так как в последнее время оно значительно улучшилось :) – Olivier

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