根据数组中的值禁用按钮,angularjs
Disable button according to value in array, angularjs
我有一个从 A 到 Z 的数组列表,并从中创建一个按钮列表
$scope.alphabet = "abcdefghijklmnopqrstuvwxyz".split("");
我还有另一个数组
$scope.uniqChar = ['a', 'g', 'm'];
通过使用这个数组,我想创建一个按钮列表,其中所有按钮都禁用,除了名称为 'a'、'g'、'm'(位于 $scope.uniqChar).
我这样做了jsfiddle,但是输出显示了三次。我只希望它出现在一个列表中。请赐教。
请查看更新后的fiddle。 http://jsfiddle.net/U3pVM/13663/
无需使用两个 ng-repeat
指令。因为按钮被渲染了多次。
这是可以解决问题的更新标记:
<div ng-app>
<div ng-controller="TodoCtrl">
<button ng-repeat="letter in alphabet" ng-disabled="uniqChar.indexOf(letter) === -1">
{{letter | uppercase}}
</button
</div>
</div>
Angular 正在做您要求他做的事情。
对于 uniqChar 数组中的每个字母,它会打印整个字母表,仅启用带有您循环的字母的按钮。
您想要的是在字母表上循环并仅当每个按钮是 uniqChar 中存在的字母时才启用每个按钮。
<button ng-repeat="letter in alphabet" ng-disabled="uniqChar.indexOf(letter) < 0">
我有一个从 A 到 Z 的数组列表,并从中创建一个按钮列表
$scope.alphabet = "abcdefghijklmnopqrstuvwxyz".split("");
我还有另一个数组
$scope.uniqChar = ['a', 'g', 'm'];
通过使用这个数组,我想创建一个按钮列表,其中所有按钮都禁用,除了名称为 'a'、'g'、'm'(位于 $scope.uniqChar). 我这样做了jsfiddle,但是输出显示了三次。我只希望它出现在一个列表中。请赐教。
请查看更新后的fiddle。 http://jsfiddle.net/U3pVM/13663/
无需使用两个 ng-repeat
指令。因为按钮被渲染了多次。
这是可以解决问题的更新标记:
<div ng-app>
<div ng-controller="TodoCtrl">
<button ng-repeat="letter in alphabet" ng-disabled="uniqChar.indexOf(letter) === -1">
{{letter | uppercase}}
</button
</div>
</div>
Angular 正在做您要求他做的事情。 对于 uniqChar 数组中的每个字母,它会打印整个字母表,仅启用带有您循环的字母的按钮。
您想要的是在字母表上循环并仅当每个按钮是 uniqChar 中存在的字母时才启用每个按钮。
<button ng-repeat="letter in alphabet" ng-disabled="uniqChar.indexOf(letter) < 0">