7

次のような基本的な ng-show 式があります。

ng-show="((message.status & messageStatus.Spam) != 0)"

ただし、これは次のメッセージで失敗し ます

Angular はビット単位の演算をサポートしていますか? それとも、そのような単純なものを評価する関数を作成する必要がありますか?

4

4 に答える 4

5

angularjs github バグリストから: https://github.com/angular/angular.js/issues/2838

http://docs.angularjs.org/guide/expression "Angular Expressions vs. JS Expressions Angular ビュー式を JavaScript 式と考えたくなるかもしれませんが、Angular は JavaScript eval( ) 式を評価します。"

フィルターを使用して、そのような効果を実現できます。

angular.module('project', [])
.filter('bitwiseAnd', function () {
    return function (firstNumber, secondNumber) {
        return ((parseInt(firstNumber, 10) & parseInt(secondNumber, 10)) === parseInt(secondNumber, 10));
    // return firstNumber % secondNumber > 0
    };
});
于 2013-08-02T20:10:16.433 に答える
2

ドキュメントによるとサポートしていません。

ドキュメントで言及されていると思い'|'ましたが、混乱しないでください。'|'ビット単位ORではなく、Angularjs のfilter.

于 2013-08-02T20:13:27.467 に答える
0

ビットで |&^ の代わりに素数で */% を使用できます

私はこの表現を使用しています:

ng-class="{'active':(filter% 2 )}"
ng-click="filter = filter % 2  ? filter * 2 : filter / 2"  
ng-class="{'light':(filter % 2)}" class="fa fa-eye"

素数2、3、5で

あなたはから始めなければなりません$scope.filter=1

于 2013-12-28T13:33:48.367 に答える