2

我的情况是,我想根据 ng-repeat 循环中变量的精确类型来更改一个稍微不同的元素,直到运行时才知道。我曾认为有效的作用域会将变量作为对象,但是当我中断指令时,情况并非如此。如果我在我的指令中使用“@val”为名为“val”的 ng-repeat 变量创建一个隔离范围,则因此不起作用。我尝试过没有隔离范围,但在指令触发时它再次不存在。那么在这种情况下应该怎么办呢?我确信我不是第一个想要从自定义指令访问 ng-repeat 循环变量的人。

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

4

1 回答 1

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。

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

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

于 2014-06-16T18:05:27.207 回答