Javascript ngRepeat指令的AngularJS服务器端呈现
在一个场景中,我有一个包含模板数组的服务器端变量Javascript ngRepeat指令的AngularJS服务器端呈现,javascript,angularjs,Javascript,Angularjs,在一个场景中,我有一个包含模板数组的服务器端变量modules: modules = ["module1.html","module2.html","module3.html"]; <div ng-include="'modules'"> {% for module in modules %} {% include ("modules/" ~ module) ignore missing %} {% endfo
modules
:
modules = ["module1.html","module2.html","module3.html"];
<div ng-include="'modules'">
{% for module in modules %}
{% include ("modules/" ~ module) ignore missing %}
{% endfor %}
</div>
<script type="text/ng-template" id="modules">
<div
ng-repeat="module in modules track by $index"
ng-include="'modules/' + module">
</div>
</script>
假设服务器提供以下内容:
我在这里使用的是用于PHP的twig,但是想象一下您可能会使用什么样的服务器端代码
这将为我提供连接的module1.html
、module2.html
和module3.html
的内容
等效的AngularJS代码为:
<div
ng-repeat="module in modules track by $index"
ng-include="'modules/' + module">
</div>
这是可行的,但我正在寻找不同的选择 尝试使用此npm包,它将渲染任何角度模板:
var ngcompile=require('ng-node-compile');
var ngenvision=new ngcompile();
ngenvision.$compile(“hello{{{name}}{{{n}}”)({name:'Jhon doe'});
如果不清楚或缺少信息,请告诉我。我认为您的“部分解决方案”是一个很好的选择,因为在尝试使用客户端执行的脚本逐步增强服务器呈现的内容时,有些事情很难协调。我可能很快会在写作中用到这个。太好了。如果你推荐一个库/模块,通常会展示如何应用它。
{% for module in modules %}
<div
ng-repeat="module in modules track by $index"
ng-include="'modules/' + module">
{% include ("modules/" ~ module) ignore missing %}
</div>
{% endfor %}
<div ng-include="'modules'">
{% for module in modules %}
{% include ("modules/" ~ module) ignore missing %}
{% endfor %}
</div>
<script type="text/ng-template" id="modules">
<div
ng-repeat="module in modules track by $index"
ng-include="'modules/' + module">
</div>
</script>
var ngcompile = require('ng-node-compile');
var ngEnviorment = new ngcompile();
ngEnviorment.$compile("<div ng-repeat=\"n in [1,2,3,4,5]\">hello {{name}} {{n}}</div>")({ name: 'Jhon doe' });