Phong cách ngClass với dấu gạch ngang trong phím


165

Tôi hy vọng điều này sẽ giúp ai đó đỡ đau đầu với các kiểu sử dụng dấu gạch ngang, đặc biệt là khi bootstrap đã trở nên phổ biến.

Tôi đang sử dụng góc 1.0.5 bằng cách

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.js"></script>

Trong tài liệu ngClass , ví dụ này đơn giản, nhưng nó cũng đề cập đến biểu thức có thể là ánh xạ của các tên lớp thành các giá trị boolean. Tôi đã cố gắng sử dụng kiểu "biểu tượng trắng" trên biểu tượng của mình như được hiển thị trong tài liệu bootstrap , tùy thuộc vào biến boolean.

<i class="icon-home" ng-class="{icon-white: someBooleanValue}">

Dòng trên không hoạt động. Các lớp học không được nối với icon-whitekhi nào someBooleanValuelà đúng. Tuy nhiên, nếu tôi thay đổi khóa thành iconWhite, nó sẽ được thêm thành công vào danh sách các giá trị lớp. Làm thế nào một người sẽ thêm một giá trị với một dấu gạch ngang?


1
Xin chào, chào mừng bạn đến với SO! Bạn nên cập nhật câu hỏi của mình để chia câu hỏi thành câu hỏi và câu trả lời - trả lời câu hỏi của chính bạn là được, và được khuyến khích nếu nó hữu ích. Bằng cách đó bạn có thể chấp nhận câu trả lời của mình và những người khác đang tìm kiếm có thể thấy rằng câu hỏi đã có câu trả lời thành công.
Alex Osborn

Cảm ơn lời đề nghị của bạn!
Foo L

Câu trả lời:


364

Sau nhiều giờ hack xung quanh, hóa ra dấu gạch ngang được nội suy! Báo giá là cần thiết.

<i class="icon-home" ng-class="{'icon-white': someBooleanValue}">

Tôi hy vọng điều này sẽ giúp ai đó xé tóc ra.

CẬP NHẬT:

Trong các phiên bản cũ hơn của Angular, sử dụng dấu gạch chéo ngược cũng thực hiện thủ thuật, nhưng không phải trong các phiên bản mới hơn.

<i class="icon-home" ng-class="{icon\-white: someBooleanValue}">

Cái trước có lẽ được ưa thích hơn, vì bạn có thể dễ dàng tìm kiếm nó hơn trong trình soạn thảo yêu thích của bạn.


15
Cảm ơn vì điều này. Tôi cũng đã lãng phí CÁCH RẤT NHIỀU thời gian cho việc này.
taudep

2
Cảm ơn bạn!!! Tôi biết điều này đã xảy ra nhưng tôi không biết phải giải quyết như thế nào. CẢM ƠN!
Đánh dấu Ford

1
Tôi sử dụng AngularJS 1.2.3. "\ -" không hoạt động đối với tôi. "''" Làm việc rất tốt.
bobzsj87

1
Đã tự hỏi tại sao điều này không làm việc cho tôi khi tôi dường như đang theo dõi các ví dụ khác!
nevster

$ scope.someBooleanValue = true
zloctb

11

\'icon-white\' cũng hoạt động (với AngularJS 1.2.7)


Đây là câu trả lời tốt nhất vì nó thân thiện với tương lai và tương thích ngược nhất
Eric Steinborn

2
Chào! @EricSteinborn Tôi đến từ tương lai, tôi đã đến đây để cảnh báo bạn: Điều này không thân thiện chút nào!
Typo

0

thay thế cho việc sử dụng ng-class:

    .menu-disabled-true{
color: red;
}
    .menu-disabled-false{
color: green;
}


<div ng-controller="DeathrayMenuController">
<p class=menu-disabled-{{status}}>shanam</p>
 <button ng-click="action()">click me</button>
</div>

<script>



function DeathrayMenuController($scope) {
    $scope.status=true
    $scope.action= function(){
      $scope.status=!$scope.status
    }
}
</script>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.