Javascript 动态角负载控制器
我是angularjs的新手,我在使用laravel、angularjs和requirejs的一个应用程序中工作。 我的问题是:当用户请求页面(视图)时,如何动态加载控制器。 示例:如果用户请求此URL(),则我要加载文件page_request.controller.js和page_request.template.html。 我的应用程序结构是: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
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...');
});
}]);
现在我的问题是:
“严格使用”;
定义([],函数(){
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...');
});
}]);