[英]Angular + angularAMD, load a controller before bootstrapping the app
[英]Load dynamical controller with AngularAMD in route config
我有下一個路由配置:
.config(["$routeProvider", function ($routeProvider) {
$routeProvider
.when('/something/:id', angularAMD.route({
templateUrl : function ($routeParams) {
return "views/something/" + $routeParams.id + ".html";
},
controllerUrl: function ($routeParams) {
return "controllers/something/" + $routeParams.id + "/main";
}
}))
似乎angularAMD不支持controllerUrl作為功能,因此我無法動態定義控制器。
問題是我如何為不同的URL加載不同的控制器,我錯過了某些內容,或者有其他解決方法?
您可以嘗試以下風箱。 它是從此網站獲取的( http://www.codeproject.com/Articles/808213/Developing-a-Large-Scale-Application-with-a-Single )
$routeProvider.when("/something/:id", angularAMD.route({
templateUrl: function (rp) { return 'views/' + rp.section + '/' + rp.tree + '.html'; },
resolve: {
load: ['$q', '$rootScope', '$location', function ($q, $rootScope, $location) {
var path = $location.path();
var parsePath = path.split("/");
var parentPath = parsePath[1];
var controllerName = parsePath[2];
var loadController = "Views/" + parentPath + "/" + controllerName + "Controller";
var deferred = $q.defer();
require([loadController], function () {
$rootScope.$apply(function () {
deferred.resolve();
});
});
return deferred.promise;
}]
}
}))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.