让我们说我的范围,我有布尔值:
$scope.isChecked = true;
$scope.selected = false;
在我的HTML中我有
<input type="checkbox" ng-model="isChecked" ng-show="selected = isChecked"/>
ng-show中的代码是否有效?我可以根据isChecked更新所选变量吗?在这种情况下,selected将设置为true。
ng-show不是最好的指令吗?如果更新了isChecked,是否有更新所选值的指令?
<table class="table table-condensed table-striped table-hover" ng-show="activeTab=='inbox'">
<tbody>
<tr ng-repeat="email in emails">
<td>
<input type="checkbox" ng-checked="master"
ng-model="email.isChecked"
ng-change="selected = email.isChecked"/>
</td>
</tr>
</table>
(function () {
var app = window.angular.module("mail", []);
app.controller("emailController", ["$scope", "emailService", function emailController($scope, emailService) {
$scope.selected = false;
$scope.getEmails = function () {
emailService.getEmails().then(function (data) {
$scope.emails = data;
});
};
调用getEmails之后,例如$ scope.emails [0] .email有一个isChecked属性,如果检查了任何电子邮件,我想将$ scope.selected设置为true,但如果没有检查所有,然后我想将$ scope.selected设置为false。我想知道是否可以采取循环方式,但如果我收到大量电子邮件,可能需要一段时间
答案 0 :(得分:0)
正如您编写的代码
ng-show="selected = isChecked"
显然它会被执行;
这就像
$scope.selected = $scope.isChecked
在具体情况下,我建议你
仅当isChecked
为false
时执行循环。
像:
ng-change="checkedChanged(email.isChecked)"
$scope.checkedChanged = function(chk) {
if(chk) {
$scope.selected = true;
} else {
var checkedFlag=false;
//loop here
$scope.selected = checkedFlag;
}
}