javascript - 范围变量更改不影响视图
问题描述
我正在努力解决 AngularJS 问题。我在 ng-repeat 中有两个 HTML 块,并希望在每个步骤中显示其中一个。
<div class="col-md-3" style="margin-top:80px" ng-init="checkFunction()">
<div id="left_group_stage">
<ul class="list-group" ng-if="started">
<li class="list-group-item"> {{group_leaders[$index]}}</li>
<li class="list-group-item"> {{group_runners[$index+1]}}</li>
</ul>
<ul class="list-group" ng-if="!started">
<li class="list-group-item"> {{group_leaders[$index]}}</li>
<li class="list-group-item"> {{group_runners[$index-1]}}</li>
</ul>
</div>
</div>
这些是我的 HTML 元素。
我每次都调用 checkFunction 方法来更改每一步的起始值。
我在控制器中的功能是这样的。
$scope.started=true;
$scope.checkFunction=function(){
$scope.started = !$scope.started;
console.log($scope.started);
}
$scope.started 值随着我在控制台中看到的每一步而变化,但 ng-if 总是取真值。
我尝试了 $scope.$apply() 方法来强制在 $timeout 中更新视图,但这也没有帮助。一切正常,除了这部分。
解决方案
怎么样
<div class="col-md-3" style="margin-top: 80px"
ng-init="checkFunction()">
<div id="left_group_stage">
<ul class="list-group" ng-if="($index%2 === 0)">
<li class="list-group-item">List 1</li>
<li class="list-group-item">{{group_leaders[$index]}}</li>
<li class="list-group-item">{{group_runners[$index+1]}}</li>
</ul>
<ul class="list-group" ng-if="($index%2 !== 0)">
<li class="list-group-item">list 2</li>
<li class="list-group-item">{{group_leaders[$index]}}</li>
<li class="list-group-item">{{group_runners[$index-1]}}</li>
</ul>
</div>
</div>
odd
您可以使用并检查此 plunkr来实现相同的行为even
奇数:ng-if="($index%2 !== 0)"
甚至:ng-if="($index%2 === 0)"
所以它交替发生。
推荐阅读
- sql - 即使删除一个数字,如何在序列号中创建列
- vb.net - 不执行对象的两个事件
- facebook - 调用 facebook 营销 api /insights 端点为沙盒营销帐户返回一个空数组 data []
- python - 如何检查格式日期python
- python - 正则表达式 - 从末尾开始的斜线之间的第二次出现
- python - 您如何处理时间序列分析中的零点?
- visual-studio - 如何在 Visual Studio(2019 或更高版本)中从 .vscode/tasks.json 运行任务
- php - 从 WooCommerce 订阅仪表板中删除特定用户角色的操作按钮
- reactjs - 如何在 MERN 中使用 params 发布和获取数据
- c# - 使用oledb将数据导出到excel