AngularJS 个 Twig 中的组件

AngularJS components in Twig

我在使用 twig 作为模板引擎的 symfony 项目中集成了 AngularJS。

但是在使用循环时,我的模板崩溃了:

<md-item ng-repeat="{{ '{%item in menu%}' }}">
    <a>
      <md-item-content md-ink-ripple layout="row" layout-align="start center">
        <div class="inset">
            <ng-md-icon icon="{{ '{{item.icon}}' }}"></ng-md-icon>
        </div>
      </md-item-content>
    </a>
</md-item>

我的控制台打印:

'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression

那么有什么好的方法可以在 Twig 中使用 angularJS loops/variables 等吗?

谢谢和问候!

可能 AngularJS 语法有问题,绝对不是 Twig。使用 twig 和 Angular 1.4.5 的标准语法进行测试。这应该有效:

<md-item ng-repeat="item in menu">
    <a>
        <md-item-content md-ink-ripple layout="row" layout-align="start center">
            <div class="inset">
                <ng-md-icon icon="{{ '{{item.icon}}' }}"></ng-md-icon>
            </div>
        </md-item-content>
    </a>
</md-item>

我觉得应该是:

<md-item ng-repeat="item in menu">
<a>
  <md-item-content md-ink-ripple layout="row" layout-align="start center">
    <div class="inset">
        <ng-md-icon icon="{{ '{{item.icon}}' }}"></ng-md-icon>
    </div>
  </md-item-content>
</a>

ng-repeat 中,您不必使用 大括号

为了避免树枝混淆,您应该将 angularjs 括号更改为其他内容:

angular.module('myApp', []).config(function($interpolateProvider){
    $interpolateProvider.startSymbol('{*').endSymbol('*}');
});