6

Tôi có một biểu hiện ng-show cơ bản như sau:Bitwise Biểu góc không làm việc

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

Tuy nhiên, điều này không thành công với các msg sau: "Mã '&' là bất ngờ, mong [)] tại cột 18 của cụm từ ".

Góc hỗ trợ có hoạt động bitwise hay tôi cần viết hàm để đánh giá điều gì đó đơn giản như vậy?

Trả lời

5

Từ angularjs github buglist: https://github.com/angular/angular.js/issues/2838

http://docs.angularjs.org/guide/expression "Expressions góc vs JS Expressions Nó có thể là hấp dẫn để nghĩ về biểu quan điểm góc như biểu thức JavaScript, nhưng đó không phải là hoàn toàn đúng, vì góc không sử dụng một eval JavaScript() để đánh giá các biểu thức. "

Bạn có thể sử dụng một bộ lọc để đạt được hiệu quả như vậy:

angular.module('project', []) 
.filter('bitwiseAnd', function() { 
    return function (firstNumber, secondNumber) { 
     return ((parseInt(firstNumber, 10) & parseInt(secondNumber, 10)) === parseInt(secondNumber, 10)); 
    // return firstNumber % secondNumber > 0 
    }; 
}); 
+0

Tôi đã viết một module nhỏ cho hoạt động bitwise. Kiểm tra [góc-bitwise-filter] [1] [1]: https://github.com/lborgav/angular-bitwise-filter – lborgav

+0

Điều này không hiệu quả nếu số thứ hai lớn hơn số đầu tiên. Ví dụ: "1 & 9" cũng nên tương đương với đúng. Nên thay vào đó "return ((parseInt (firstNumber, 10) & parseInt (secondNumber, 10))> 0)" – garethb

1

Nó không hỗ trợ theo doc.

Nghĩ rằng nó đã đề cập '|' trên tài liệu nhưng không bị lẫn lộn, '|' không phải là bitwise OR là Angularjs's filter.

0

bạn có thể sử dụng * /% với số nguyên thay vì | &^với bit

Tôi ussing expresions này:

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

Với các số nguyên tố 2, 3 và 5

bạn phải bắt đầu với $scope.filter=1

Các vấn đề liên quan