将angularjs ng-repeat变量赋予使用repeat调用的指令的最佳方法是什么

时间:2013-08-13 23:18:01

标签: angularjs-directive

我的情况是我想要根据ng-repeat循环中变量的精确类型来改变一个稍微不同的元素,这在运行时是未知的。我曾经认为范围实际上会将变量作为一个对象,但是当我在我的指令中打破它并非如此。如果我在我的指令中使用“@val”为一个名为“val”的ng-repeat变量创建一个隔离范围,那么就不起作用了。我试过没有一个孤立的范围但是当指令被解雇时它再次没有出现。那么在这种情况下应该做些什么呢?我确信我不是第一个想要从自定义指令访问ng-repeat循环变量的人。

如果我尝试类似的东西 然后我只得到字符串“val”,其中val实际上是循环中的非字符串对象。这是评估不同事物时的一些奇怪效果吗?

1 个答案:

答案 0 :(得分:0)

你要做的事应该工作得很好。这是一个例子......

http://jsfiddle.net/HB7LU/4269/

<div ng-repeat="val in values"> <my-directive val="{{val}}">{{val}}</my-directive>

您可以看到转发器中的值很容易绑定到子指令中。

由于你没有提供任何代码,很难看出你出错的地方,但它可能与你在html中使用表格的事实有关。 Angular中有一个错误,它在1.2.13中被修复,与重复表元素有关,因为浏览器实际上有时会自己操纵表内的DOM。

请参阅this有关该问题的错误报告。

我会更新到最新版本的Angular,然后再试一次。如果仍然无法使其正常工作,请尽量避免使用html表。您可以通过适当地设置div来轻松伪造表格