当数据发生变化时,我在更新显示的类时遇到问题。
我有一个服务器数组,每10秒调用一次获取服务器状态。如果数据发生变化,数据会发生变化,但课程不会发生变化
没有变化的部分会根据状态显示字体真棒图标 ' fas fa-exclamation-triangle critical' :' fas fa-check ok'">
文本确实改变了{{server.status}}而不是if语句中的font-awesome类。
我需要改变什么才能让它正确显示?
cv2.HoughLinesP
我也尝试过没有这样的类:
<tr v-for="server in servers">
<td>
{{server.name}}
<a v-bind:href="server.url" target="_blank">{{server.url}}</a>
</td>
<td style="min-width: 125px">
<i :class="server.status === 'CRITICAL' ? 'fas fa-exclamation-triangle critical' : 'fas fa-check ok'"></i>
{{server.status}}
</td>
<td>{{server.revision}}</td>
<td>{{server.notify}}</td>
<td>{{server.count}}</td>
</tr>
<script>
import axios from 'axios'
export default {
name: 'ServerMonitor',
data() {
return {
servers: []
}
},
created() {
this.fetchData();
},
mounted: function () {
setInterval(function () {
this.fetchData();
}.bind(this), 10000)
},
methods: {
fetchData() {
axios.get('https://SERVER/serverinfo')
.then((resp) => {
this.servers = resp.data[0].servers;
})
.catch((err) => {
console.log(err);
})
}
}
}
</script>
答案 0 :(得分:3)
Vue's v-bind:class
接受一个对象或一个数组,而不是一个字符串,这可能是你的问题。
<td style="min-width: 125px">
<i :class="['fas', server.status === 'CRITICAL' ? 'fa-exclamation-triangle critical' : 'fa-check ok']"></i>
{{server.status}}
</td>
根据以下评论更新我的回答:
您需要使用font-awesome Vue组件。发生了什么,FontAwesome正在将<i>
图标转换为SVG一次,并且在任何未来点都不会重新呈现它们。
编辑2 或者,您可以使用v4升级垫片:
<script defer src="https://use.fontawesome.com/releases/v5.0.6/js/v4-shims.js"></script>
答案 1 :(得分:0)
如果您以js方式使用font-awesome,可以试试这个:
FontAwesomeConfig = { autoReplaceSvg: 'nest' }
doc:https://fontawesome.com/how-to-use/svg-with-js#auto-replace-svg-nest