Angular有点新,并试图掌握范围。我知道每次通过ng-repeat传递一个集合都有自己的范围。我不明白的是以下代码:
<tr data-ng-repeat="oneField in $parent.formEventDefinition">
<ng-include src="getUrl(oneField.fieldType)"></ng-include>
{{oneField.fieldType}}
在ng-include中,oneField.fieldType为undefined
,但下一行的{{}}指令将正确的值写入页面。为什么在一种情况下从范围中找到正确的值而不是另一种情况呢?
答案或指向某个地方的指针可以自己找到答案。我正在努力学习并迷失方向。
谢谢!
答案 0 :(得分:1)
因为ng-include
确实从当前运行范围创建子范围,如ng-repeat
,ng-if
,ng-switch-when
,所以使用$parent.oneField.fieldType
}
Look this answer了解更多信息
答案 1 :(得分:0)
事实证明,这不是范围问题。事实证明,问题是将<ng-include>
元素嵌套在<tr>
元素中是不合法的,而Angular以某种方式强制执行此操作。当我重新设计HTML以将<ng-include>
放入<td>
时,所有内容都开始神奇地工作。
感谢您的帮助。
戴夫