【问题标题】:angularjs binding to an attributeangularjs绑定到属性
【发布时间】:2015-10-06 14:37:35
【问题描述】:

我正在尝试在另一个指令中动态加载指令,因此我尝试在下面使用ng-repeat,其中{{item.directiveName}} 是内部指令名称。

<card ng-repeat="item in items" {{item.directiveName}} title="{{item.title}}">

问题是{{item.directiveName}} 没有被评估,它保持原样。我认为因为它不是属性的值,所以它是属性。

有什么方法可以评估这个表达式还是 angularjs 不支持?

【问题讨论】:

  • Angular 只会将 item.directivename 解析为属性的值,但不会解析为属性。您应该编写一个指令来打印和管理整个
  • {{item.directiveName}} angular 只编译一次,该语法不起作用。
  • 您首先要实现什么目标?
  • 这应该对你有帮助:Add directives from directive in AngularJS
  • @zeroflagL,我更新问题

标签: angularjs angularjs-ng-repeat angularjs-bindings


【解决方案1】:

应该这样做,具体取决于 card 指令。

<div ng-repeat="item in items">
<card  {{item.directiveName}} title="{{item.title}}"> </card>
</div>

【讨论】:

  • 卡片指令从何而来?
  • 这是我开发的自定义指令。忘记 card 指令,你可以用 div 代替 card 指令,你将面临同样的问题。
  • 卡片也是你的指令吗?无论如何,我认为这种方法行不通,因为您在编译阶段之后分配了值。对于初学者,如果 card 是您的指令,请尝试在其链接函数中添加断点并检查属性并将您的 html 更改为:
  • 所以您基本上是在尝试在指令中动态加载指令?我认为 Angular 不会开箱即用地做到这一点。这个 codepen:jsfiddle.net/ftfish/KyEr3 应该让你非常接近。
  • 是的,没错。我正在尝试动态加载另一个指令中的指令。
【解决方案2】:

尝试将其分配给属性

<card ng-repeat="item in items" data="{{item.directiveName}}" title="{{item.title}}">

    <card ng-repeat="item in items" myAttr="{{item.directiveName}}" title="{{item.title}}">

【讨论】:

  • 如果我将它分配给一个属性,它会起作用,但我不想这样做,因为这是另一个应该执行的指令的名称。
猜你喜欢
  • 2014-10-05
  • 1970-01-01
  • 2013-09-16
  • 2017-05-09
  • 2014-10-22
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
相关资源
最近更新 更多