簡體   English   中英

在路由配置中使用AngularAMD加載動態控制器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM