检查vuejs中是否存在值

时间:2016-03-04 02:57:34

标签: vue.js vue-resource

我有数据: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中做到这一点.. ??

2 个答案:

答案 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