根据数组中的值禁用按钮,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">