ไม่แน่ใจว่าฉันได้อธิบายคำถามของฉันให้ชัดเจนหรือไม่ แต่สิ่งที่ฉันต้องการจริงๆ คืออัปเดต min-width
ด้วย ng-style
สำหรับ <li>
แต่ละรายการภายใน ng-repeat
ให้เท่ากับเปอร์เซ็นต์ของ 100 / array.length
วิธีแก้ปัญหาแรกของฉันคือ:
<li ng-style="{'min-width': (100 / array.length) + '%'}">
ใช้งานได้ แต่ฉันไม่ชอบนิพจน์ทางคณิตศาสตร์ในมุมมอง ฉันอยากให้มีไว้ในตัวควบคุม บางสิ่งบางอย่างในบรรทัดของ:
$scope.percentage = (100 / $scope.array.length) + '%'
<li ng-style="{'min-width': percentage}"
ปัญหาของแนวทางนี้คือเมื่อเนื้อหาอาเรย์เปลี่ยนแปลง percentage
จะไม่เปลี่ยนแปลง ฉันสามารถเพิ่ม $watchCollection
ถึง array
และอัปเดต percentage
ที่นั่นได้ แต่รู้สึกว่าไม่ถูกต้อง เหมือนว่าฉันขาดแนวทางที่ดีกว่าไป ฉันเหรอ?
ถ้าไม่ คุณชอบโซลูชันใด นิพจน์ทางคณิตศาสตร์ในมุมมอง หรือ $watchCollection
?