ฉันพบปัญหาเมื่อใช้คลาสภายในองค์ประกอบของตารางเมื่อฉันมีหนึ่งคลาสที่ใช้กับตารางทั้งหมดแล้ว (ตัวอย่างเช่นสีที่ใช้กับแถวคี่<myClass tbody tr:nth-child(even) td>
) ดูเหมือนว่าเมื่อคุณตรวจสอบองค์ประกอบที่มีเครื่องมือสำหรับนักพัฒนาที่element.style
มีสไตล์ที่ได้รับมอบหมายไม่มี ดังนั้นแทนที่จะใช้ng-class
ผมได้ลองใช้ng-style
และในกรณีนี้แอตทริบิวต์ CSS element.style
ใหม่ไม่ปรากฏอยู่ภายใน รหัสนี้ใช้งานได้ดีสำหรับฉัน:
<tr ng-repeat="element in collection">
[...amazing code...]
<td ng-style="myvar === 0 && {'background-color': 'red'} ||
myvar === 1 && {'background-color': 'green'} ||
myvar === 2 && {'background-color': 'yellow'}">{{ myvar }}</td>
[...more amazing code...]
</tr>
Myvarคือสิ่งที่ฉันกำลังประเมินและในแต่ละกรณีฉันใช้สไตล์กับแต่ละค่า<td>
ขึ้นอยู่กับค่าmyvarที่จะเขียนทับสไตล์ปัจจุบันที่ใช้โดยคลาส CSS สำหรับทั้งตาราง
UPDATE
หากคุณต้องการใช้คลาสกับตารางเช่นเมื่อไปที่หน้าหรือในกรณีอื่นคุณสามารถใช้โครงสร้างนี้:
<li ng-class="{ active: isActive('/route_a') || isActive('/route_b')}">
โดยพื้นฐานแล้วสิ่งที่เราต้องเปิดใช้งานng-classคือคลาสที่จะใช้และคำสั่งจริงหรือเท็จ Trueใช้คลาสและfalseไม่ได้ ดังนั้นที่นี่เรามีสองการตรวจสอบเส้นทางของหน้าและORระหว่างพวกเขาดังนั้นหากเราอยู่ใน/route_a
หรือเราอยู่ในroute_b
การใช้งานระดับจะนำไปใช้
มันใช้งานได้เพียงแค่มีฟังก์ชั่นลอจิกทางด้านขวาที่ส่งกลับจริงหรือเท็จ
ดังนั้นในตัวอย่างแรกng-styleจะมีเงื่อนไขสามประโยค หากทั้งหมดนั้นเป็นเท็จจะไม่มีการใช้สไตล์ แต่เป็นไปตามตรรกะของเราอย่างน้อยหนึ่งรายการจะถูกนำไปใช้ดังนั้นการแสดงออกของตรรกะจะตรวจสอบว่าการเปรียบเทียบตัวแปรใดเป็นจริงและเพราะอาร์เรย์ที่ไม่ใช่ว่างนั้นเป็นจริงเสมอ ปล่อยให้อาร์เรย์เป็นผลตอบแทนและมีเพียงหนึ่งจริงเนื่องจากเราใช้ORสำหรับการตอบกลับทั้งหมดรูปแบบที่เหลือจะถูกนำไปใช้
อย่างไรก็ตามฉันลืมให้ฟังก์ชัน isActive ():
$rootScope.isActive = function(viewLocation) {
return viewLocation === $location.path();
};
อัพเดทใหม่
ที่นี่คุณมีสิ่งที่ฉันพบว่ามีประโยชน์จริงๆ เมื่อคุณจำเป็นต้องใช้คลาสขึ้นอยู่กับค่าของตัวแปรเช่นไอคอนขึ้นอยู่กับเนื้อหาของdiv
คุณสามารถใช้รหัสต่อไปนี้ (มีประโยชน์มากในng-repeat
):
<i class="fa" ng-class="{ 'fa-github' : type === 0,
'fa-linkedin' : type === 1,
'fa-skype' : type === 2,
'fa-google' : type === 3 }"></i>
ไอคอนจากFont Awesome