2013-01-14 64 views
10

目前,我正在将传统应用程序与使用AngularJS编写的一些动态部分相结合。我想从我的服务器提供一些配置到我的模块。在这种情况下,我想配置应用程序的“基础”URL。所有模板都可以在特定位置找到,并且此位置由服务器决定。如何为AngularJS模块提供配置?

所以,我想是这样的:

angularForm.config(
function($routeProvider, TemplateLocator) { 
    $routeProvider.when('/', { 
     controller : TestController, 
     templateUrl : TemplateLocator.getTemplate('FormOuterContainer') 
}); 
}); 

在服务器:

<script type="text/javascript"> 
angular.module('BoekingsModule.config', []).provider('TemplateLocator', function() { 
     this.$get = function() { 
      return // something 
     } 

     this.getTemplate = function(name) { return 'location...'; } 
    }); 
</script> 

不过,我不知道这是正确的方式。 因此简而言之:我怎样才能为模块提供一些(外部)配置而不必更改模块本身?

+0

卡住了相同的问题。你能弄清楚这一点吗? –

回答

0

哇已经很长时间了。我完全忘了这篇文章。

因此,最后我决定最好使用另一种方法。就像iwein所说的那样,将SPA和服务器端渲染相结合使得应用程序变得更加复杂。因此,我将SPA部分提取到一个单独的应用程序中,该应用程序又从JSP(在我的情况中)引用。

当我的模块需要一些额外的配置时,它使用REST API获取它。这样,应用程序的SPA部分与服务器端呈现的部分完全分离。

4

有几件事情你可以做

  1. 渲染在服务器上JS的位置。

    :少请求 - >更好的性能(通常)

    缺点

    • 结合服务器端与SPA渲染使得系统更加复杂,从而导致更高的维护成本。
    • 如果你想混合在服务器端渲染,在html中嵌入js也很难,它很难正确压缩你的js文件。
  2. 将模板位置提取到service

    从此服务中,您可以使用$resource以json格式从服务器获取数据。这使事情更简单,但它也可能增加您的Web服务器的负载。

相关问题