将angularjs ng repeat变量转换为withn the repeat指令的最佳方法是什么



我的情况是,我想根据ng重复循环中变量的精确类型更改一个稍微不同的元素,这在运行时才知道。我原以为有效的作用域会将变量作为对象,但当我打断指令时,情况并非如此。如果我在指令中使用"@val"为名为"val"的ng重复变量创建一个隔离作用域,那么就不起作用了。我在没有隔离作用域的情况下进行了尝试,但当指令启动时,它再次不存在。那么在这种情况下该怎么办呢?我确信我不是第一个想从自定义指令访问ng重复循环变量的人。

如果我尝试那么我只得到字符串"val",其中val实际上是循环中的一个非字符串对象。这是评估不同事物时产生的某种奇怪影响吗?

您尝试做的事情应该很好。下面是一个例子。。。

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

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

您可以看到来自中继器的值很容易地绑定到子指令中。

由于您没有提供任何代码,很难看出哪里出了问题,但这可能与您在html中使用表有关。Angular中存在一个错误,该错误在1.2.13中得到了修复,与在表元素上重复有关,因为浏览器有时实际上会自己操作表中的DOM。

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

我会更新到Angular的最新版本,然后再试一次。如果你仍然不能让它工作,尽量避免使用html表。您可以通过适当地设置div的样式来轻松地伪造表格

最新更新