AngularJS加载由webservice提供的远程JS控制器

时间:2014-08-20 09:30:52

标签: angularjs angularjs-controller

我有一个AngularJS应用程序,它取决于web服务,我想在加载应用程序后从远程主机加载更多控制器到应用程序中。我不知道我有可能吗?

在我的控制器中,我想加载一些控制器(js文件)

.controller('FrontpageCtrl', function($scope, $stateParams, $filter, $sce, contentService) {
    console.log("hitting FrontpageCtrl ... ");
    contentService.promise.then(function(data){
        var page = $filter('filter')(data, {id:$stateParams.pageId})[0];
        $scope.content = $sce.trustAsHtml(page.content);

        // Load a controller, directive and other provided by the webservice!
        $scope. ...
    });
})

1 个答案:

答案 0 :(得分:5)

目前,angular不提供动态加载模块的方法。因此,任何角度内置对象(指令,控制器,工厂等)。
这意味着您的控制器(来自Web服务)应该加载在bootsrapping angular(可能作为索引页面上的资源)。
有一些方法可以在引导后动态加载东西,这里有几个:

  1. 我个人最喜欢的:https://github.com/ocombe/ocLazyLoad
  2. 最接近您的问题:http://weblogs.asp.net/dwahlin/dynamically-loading-controllers-and-views-with-angularjs-and-requirejs
  3. https://www.startersquad.com/blog/angularjs-requirejs/
  4. 还有很多东西可以找到..显然你可以谷歌吧。