0

我有一个循环,根据该值,我需要指定一个特定的指令。这是我所拥有的:

<div ng-repeat="w in row.widgets" class="col-md-{{12/row.widgets.length}}">
                    <{{w.type}}>
                    </{{w.type}}>
                </div>

问题是,我已经设置了匹配的指令,但是并没有实际调用指令,标记输出很简单

<widget-directive-one>
<widget-directive-two>
<widget-directive-three>

我不明白为什么它不会调用同名指令而不是输出实际值。任何建议将不胜感激!

4

4 回答 4

0

属性名称和标签名称不能在 dom 本身(视图)中动态生成。

Angular 需要能够解析 dom 中的元素并将现有的标签名称或属性与这些指令进行比较

有很多方法可以处理这个 ... ng-switchng-if或者返回您想要的指令标签的自定义指令是几个例子

于 2016-01-27T17:13:52.783 回答
0

使用这个ng-if

<div ng-repeat="w in row.widgets" class="col-md-{{12/row.widgets.length}}">
    <widget-directive-one ng-if="$index==0"></widget-directive-one>
    <widget-directive-two ng-if="$index==1"></widget-directive-two>
    <widget-directive-three ng-if="$index==2"></widget-directive-three>
</div>
于 2016-01-27T17:33:08.450 回答
0

使用ng-bind-html指令:

从文档:

ngBindHtml

评估表达式并将生成的 HTML 以安全的方式插入到元素中。

您也可以绕过对您知道是安全的值的清理。为此,请通过$sce.trustAsHtml绑定到明确信任的值。请参阅严格上下文转义 (SCE)下的示例。

-- AngularJS ng-bind-html 指令 API 参考

于 2016-01-28T00:53:03.530 回答
0

将 widgetType 添加到您的控制器 $scope。然后你可以做这样的事情:

<div ng-switch="widgetType">
  <widget-one ng-switch-when="widgetOne"></widget-one>
  <widget-two ng-switch-when="widgetTwo"></widget-two>
  <widget-three ng-switch-when="widgetThree"></widget-three>
</div>
于 2016-01-27T17:27:26.317 回答