Javascript 动态角负载控制器

Javascript 动态角负载控制器,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我是angularjs的新手,我在使用laravel、angularjs和requirejs的一个应用程序中工作。 我的问题是:当用户请求页面(视图)时,如何动态加载控制器。 示例:如果用户请求此URL(),则我要加载文件page_request.controller.js和page_request.template.html。 我的应用程序结构是: public/ app/ main.js app.js config.js

我是angularjs的新手,我在使用laravel、angularjs和requirejs的一个应用程序中工作。 我的问题是:当用户请求页面(视图)时,如何动态加载控制器。 示例:如果用户请求此URL(),则我要加载文件page_request.controller.js和page_request.template.html。 我的应用程序结构是:

public/
     app/
        main.js
        app.js
        config.js
        todo/
            controllers/
                       page_requested.controller.js
            views/
                 page_requested.template.html
            dirictives/
        ...
main.js

'use struct';
require.config({
  baseUrl: '/../libPath/',

  paths: {
    jquery      : '/../bower_components/jquery/dist/jquery',
    angular     : '/../bower_components/angular/angular',
    ngAnimate   : '/../bower_components/angulat-animate/angular-animate',
    ngAria      : '/../bower_components/angular-aria/angular-aria',
    ngMessages  : '/../bower_components/angular-messages/angular-messages',
    ngRoute     : '/../bower_components/angular-route/angular-route',
    ngSanitize  : '/../bower_components/angular-sanitize/angular-sanitize',
        autoLoad        : '/../bower_components/auto-load/lib/index',
    app         : 'app'


  },
  shim: {
    jquery: {
            exports: '$'
        },

        angular: {
            exports: 'angular',
        },
        ngRoute: {
            exports: 'ngRoute',
            deps: ['angular']
        }
  }
});

require(
    [
        'angular', 
        'ngRoute',
        'app',
        'config'
    ], 
    function (angular) {
        var AppRoot = angular.element(document.getElementById('ng-app'));
        AppRoot.attr('ng-controller','app');
        angular.bootstrap(document, ['app']);
    }
);
app.js

'use strict';
define(['angular', 'ngRoute', 'ngSanitize'], function (angular, ngRoute, ngSanitize) {

    angular.module('HashBangURLs', ['ngRoute']).config(['$locationProvider', function($location) {
        $locatio
</pre>n.hashPrefix('!');
    }]);

    angular.module('HTML5ModeURLs', ['ngRoute']).config(['$locationProvider', function($location) {
        $location.html5Mode(true);
    }]);


    var app = angular.module('app', ['HashBangURLs', 'ngSanitize'], function (
                                                            $routeProvider, 
                                                             $locationProvider, 
                                                             $httpProvider) {

    });

});
我的控制器页面\u请求的控制器

define(['angular', 'app', function(angular, app){
  app.controller('page_rquestedController', function($scope){
    $scope.title = "Hi from page_requested.controller.js";
    console.log('controller is exicuted...');
  });
}]);
现在我的问题是:

  • 这是正确的我在找什么?“这对我的应用安全吗
  • 我不想使用layzyLoad.js——这是一个很棒的脚本,但我不想在这个应用程序上使用它
  • 如果我必须注册我的控制器并将脚本元素添加到我的主体中,我如何从config.js执行此操作?angular.dirictives是否可以执行此操作
  • 试试这个

    “严格使用”;
    定义([],函数(){
    var app=angular.module('UConnect'、['ngRoute'、'ngAnimate'、'ui.materialize'、'yaru22.angular timeago']);
    app.config(['$routeProvider','$controllerProvider','$Provider',函数($routeProvider,$controllerProvider,$Provider){
    //注册您的组件
    app.register={
    控制器:$controllerProvider.register,
    工厂:$provide.factory,
    服务:$provide.service
    };
    //通过require.js为load controller添加解析器
    函数解析控制器(依赖项){
    返回{
    加载:['$q','$rootScope',函数($q,$rootScope){
    var defer=$q.defer();
    要求(依赖项、函数(){
    defer.resolve();
    $rootScope.$apply();
    });
    回报、承诺;
    }]
    }
    };
    $routeProvider
    .when(“/页”{
    templateUrl:“templates/Pages.html”,
    控制器:'PagesCtrl',//添加控制器名称。
    resolve:resolveController(['controller/PagesCtrl'])//调用解析器以加载控制器。
    })
    .when(“/ContactUs”{
    templateUrl:“templates/ContactUs.html”,
    控制器:“ContactUsCtrl”,
    解析:解析控制器(['controller/ContactUsCtrl'])
    })
    ;
    $routeProvider。否则('/Pages');
    }]);
    angular.element(文档).ready(函数(){
    引导(文档,['Uconnect']);
    });
    返回应用程序;
    
    });
    您已经通过config.jsHi@sail中的$routeProvider动态加载了控制器,但是没有在视图(html)中显示任何内容,您知道会出现什么问题吗?
    define(['angular', 'app', function(angular, app){
      app.controller('page_rquestedController', function($scope){
        $scope.title = "Hi from page_requested.controller.js";
        console.log('controller is exicuted...');
      });
    }]);