我有一个 $ scope.code.N3 变量,该变量由异步ajax调用填充。
我还有一个 $ scope.data.selectedIRI ,它是html组合框中选项的值。
我在表格中有一个html片段,在更新变量时会刷新:
这样可以在需要时刷新:
<tbody>
<tr ng-repeat="t in code.N3" ng-if="t.subject==data.selectedIRI" ng-include="'displayPredicateObject'">
<!-- Rendered by template -->
</tr>
</tbody>
然而,这不起作用(它在我的代码的其他部分工作,其中此代码段被集成到由角度刷新的标记中):
<tbody ng-init="allTriples = code.N3">
<tr ng-repeat="t in allTriples" ng-if="t.subject==data.selectedIRI" ng-include="'displayPredicateObject'">
<!-- Rendered by template -->
</tr>
</tbody>
这也不起作用:
<table ng-init="s = data.selectedIRI">
<tbody ng-init="triples = getTriples(null, null, s)">
<tr><td>[[triples]]</td></tr>
</tbody>
</table>
此处 getTriples(...,...,data.selectedIRI)永远不会被调用,而 $ scope.data.selectedIRI 会更新。
有什么理由吗?
答案 0 :(得分:0)
当你使用ng-init设置初始值时,$ scope.code.N3是未定义的,因为你说它是由一个尚未发生的异步调用设置的,这导致ng-repeate无声地失败
<tbody ng-init="allTriples = code.N3">
<tr ng-repeat="t in allTriples" ng-if="t.subject==data.selectedIRI" ng-include="'displayPredicateObject'">
<!-- Rendered by template -->
</tr>
</tbody>