【发布时间】:2015-08-02 03:59:44
【问题描述】:
这就是我填充表格并将复选框附加到控制器的方式
<tr ng-repeat="key in queryResults.userPropNames">
<td><input type="checkbox"
data-ng-checked="selectedKeys.indexOf(key) != -1"
data-ng-click="toggleSelect(key)">
</td>
<td>{{key}}</td>
<td ng-repeat="user in queryResults.users">
{{user.properties[key]}}
</td>
</tr>
这就是我的HTML 按钮的外观
<div>
<span ng-if="!validKeys" class="button-terminal primary save-user-keys"
data-disabled="false">Save Keys</span>
<span ng-if="validKeys" class="button-terminal primary save-user-keys"
data-ng-click="saveUserKeys()">Save Keys</span>
</div>
我的控制器看起来像
$scope.toggleSelect = function (attribute) {
if ($scope.selectedKeys.indexOf(attribute) === -1) {
$scope.selectedKeys.push(attribute);
} else {
$scope.selectedKeys.splice($scope.selectedKeys.indexOf(attribute), 1);
}
};
$scope.saveUserKeys = function() {
$scope.customAttributes.mappingForUser = $scope.selectedKeys;
$scope.saveMappings();
};
$scope.validKeys = !!$scope.selectedKeys;
但我的按钮始终处于启用状态,即使我取消选中所有复选框
这段代码有什么问题?
谢谢
【问题讨论】:
-
selectedKeys不会是一个空数组吗?[]是真的,所以ng-if将解析为真,除非你这样做ng-if="validKeys.length"
标签: javascript angularjs