2016-03-04 39 views
1

我有数据:1,2,3,4,4,5 &我这样的代码:检查中存在vuejs价值

<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 ..?

+2

但在php中的数组开始为空。我不太明白你在做什么...... –

+0

你的数据在你的JS中是什么样的? – Cohars

回答

0

据我所知,你想检查值是否在数组中,然后相应地渲染它?

如果是这样,您需要一个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

+0

hy @Alliswell,谢谢 – b4dQuetions

0

没有必要自定义过滤器。你可以很容易地做到这一点:

<div id="looping" v-for="display in editlistAssesments"> 
    <span v-if="display.test_id">{{display.test_id}}</span> 
</div> 

v-if将只呈现该数组中存在的项目。