ng-if not working as expected
这是我如何填充表并将复选框附加到控制器的方法
1 2 3 4 5 6 7 8 9 10 11 | <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> |
这就是我的按钮的EDOCX1[0]的外观
1 2 3 4 | <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> |
我的控制器看起来像
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $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; |
但我的按钮始终处于启用状态,即使我取消选中所有复选框
这个代码有什么问题?
谢谢你
是一个阵列,即使没有钥匙。然而,空隙阵列是真实的(EDOCX1&1)。
1.One fix would be to check the length of
法国电力公司
另一方面,如果指定
如果你打印Validkeys(I.E.{{Validkeys}),你看到它在真实/伪造之间的变化吗?另外,如果我正确地理解了这一点,你就应该测试有效的长度——如果高于0,则可以生出收获,否则会失败。