สไตล์ ngClass พร้อมกับประในคีย์


165

ฉันหวังว่านี่จะช่วยให้ใครบางคนปวดหัวด้วยสไตล์ที่ใช้เครื่องหมายขีดคั่นโดยเฉพาะอย่างยิ่งเมื่อ bootstrap ได้รับความนิยม

ฉันใช้มุมฉาก 1.0.5

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

ในเอกสารประกอบ ngClassตัวอย่างนั้นง่าย แต่ก็ยังกล่าวถึงการแสดงออกสามารถเป็นแผนที่ของชื่อชั้นเรียนเพื่อค่าบูลีน ฉันพยายามใช้สไตล์ "ไอคอนขาว" บนไอคอนของฉันดังที่แสดงในเอกสารประกอบการบูตขึ้นอยู่กับตัวแปรบูลีน

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

บรรทัดข้างต้นไม่ทำงาน ชั้นจะไม่ผนวกเข้ากับicon-whiteเมื่อsomeBooleanValueเป็นจริง อย่างไรก็ตามถ้าฉันเปลี่ยนคีย์เป็นiconWhiteมันจะถูกเพิ่มไปยังรายการของค่าระดับ เราจะเพิ่มมูลค่าด้วยเครื่องหมายขีดกลางได้อย่างไร


1
สวัสดียินดีต้อนรับสู่ SO! คุณควรอัปเดตคำถามของคุณเพื่อแยกคำถามและคำตอบออก - ตอบคำถามของคุณเองก็โอเคและสนับสนุนหากเป็นประโยชน์ ด้วยวิธีนี้คุณสามารถยอมรับคำตอบของคุณและการค้นหาอื่น ๆ จะเห็นว่าคำถามนั้นมีคำตอบที่ประสบความสำเร็จ
Alex Osborn

ขอบคุณสำหรับคำแนะนำของคุณ!
Foo L

คำตอบ:


364

หลังจากผ่านไปหลายชั่วโมงของการแฮ็คมันกลับกลายเป็นว่าได้รับการแก้ไข! คำพูดมีความจำเป็น

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

ฉันหวังว่านี่จะช่วยให้ใครบางคนหลุดจากเส้นผมของพวกเขา

UPDATE:

ในเวอร์ชันเก่าของ Angular การใช้แบ็กสแลชนั้นเป็นการหลอกลวง แต่ไม่ใช่ในเวอร์ชันที่ใหม่กว่า

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

อาจเป็นที่นิยมมากกว่าเนื่องจากคุณสามารถค้นหาได้ง่ายขึ้นในเครื่องมือแก้ไขรายการโปรดของคุณ


15
ขอบคุณสำหรับสิ่งนี้. ฉันเสียเวลามากเกินไปในเวลานี้
taudep

2
ขอบคุณ!!! ฉันรู้ว่าสิ่งนี้กำลังเกิดขึ้น แต่ฉันไม่แน่ใจว่าจะแก้ไขได้อย่างไร ขอขอบคุณ!
Mark Ford

1
ฉันใช้ AngularJS 1.2.3 "\ -" ไม่ทำงานสำหรับฉัน "''" ทำงานได้ดีมาก
bobzsj87

1
สงสัยว่าทำไมนี่ไม่ทำงานสำหรับฉันเมื่อฉันดูเหมือนจะทำตามตัวอย่างอื่น ๆ !
nevster

$ scope.someBooleanValue = true
zloctb

11

\'icon-white\' ทำงานได้ดี (ด้วย AngularJS 1.2.7)


นี่เป็นคำตอบที่ดีที่สุดเพราะเป็นมิตรกับอนาคตและสามารถใช้ร่วมกันได้
Eric Steinborn

2
Hi! @EricSteinborn ฉันมาจากอนาคตฉันมาที่นี่เพื่อเตือนคุณ: นี่มันไม่เป็นมิตรเลย!
Typo

0

ทางเลือกสำหรับการใช้งาน 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>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.