我有数据:1,2,3,4,4,5&我的代码是这样的:
<div id="looping" v-for="display in editlistAssesments">
{{display.test_id}}
</div>
我的代码,如果在像这样的
的PHP$temp_id = array();
foreach($data as $data){
if(in_array($data ->test_id,$temp_id)){
echo" 1: no";
echo" 2: no";
echo" 3: no";
echo" 4: yes"; //because he have same value
echo" 5: no";
$temp_id[] = $data ->test_id;
}
}
我怎么能在循环vueJs中做到这一点.. ??
答案 0 :(得分:3)
据我了解,您想检查值是否在数组中然后相应地呈现它?
如果是这样,您需要一个Vue自定义过滤器。这样的事情可以解决问题:
var vm = new Vue({
el: 'body',
data: {
editlistAssesments: [1,2,3,4,4,5]
},
filters: {
ifInArray: function (value) {
return this.editlistAssesments.indexOf(value) > -1 ? 'Yes' : 'No';
}
},
});
然后像这样使用它:
<div id="looping" v-for="display in editlistAssesments">
<span v-text="display.test_id | ifInArray"></span>
<!-- bind Vue value to html element is better practice -->
</div>
检查文档以获取更多信息: http://vuejs.org/guide/custom-filter.html
答案 1 :(得分:3)
从我的观点来看,最好的方法是:
<div id="looping" v-for="display in editlistAssesments">
<span v-if="typeof display.test_id !== 'undefined'">{{display.test_id}}</span>
</div>
因为如果您使用v-if="display.test_id"
且test_id
值为0
(布尔比较),您将永远不会看到display.text_id
。