我有一个问题,我想要根据范围变量的值在两个div之间切换。范围变量在运行时更新,我希望我的视图在运行时更新。
问题是视图加载了范围变量的初始值,范围变量的值在运行时被更改但视图不受影响。
以下是示例代码:
HTML
<div **ng-if="pending=='done'"**> <!-- No Records Found -->
<div>
<center><h2> You have not any contacts yet. </h2>
</div>
</div>
<div>
<table **ng-if="pending=='not done'"**>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>E-mail</th>
<th>Contact Number</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="(Id, value) in user.Count ng-if="value.status=='Approved'">
<td> {{Id}} </td>
<td> {{value.name}} </td>
<td> {{value.email}} </td>
<td> {{value.phone}} </td>
</tr>
</tbody>
</table>
</div>
<div ng-init="changescopevalue()">
changing scope now
</div>
CONTROLLER中的功能
$scope.pending = "done";
$scope.changescopevalue = function() {
$scope.pending = "not done";
};
所以div [ng-if =&#34; pending ==&#39; done&#39;&#34;] 加载,然后范围变量变为& #34;未完成&#34; ,但视图不受影响。
请帮助..
感谢。
答案 0 :(得分:0)
你应该避免ng-init
。来自angular doc:
ngInit的唯一合适用途是用于别名ngRepeat的特殊属性,如下面的演示所示。除了这种情况,您应该使用控制器而不是ngInit来初始化作用域上的值。
您忘了关闭<center>
标记,但最好不要使用它,因为它已被弃用。请改用css。此外,您的ng-repeat
值缺少引号"
,应为:
ng-repeat="(Id, value) in user.Count" ng-if="value.status=='Approved'"
除此之外,如果您正确设置了角度,那么基于范围变量ng-if
的值的pending
效果很好: