私はデータを持っています: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でそれを行うにはどうすればよいですか.. ??
私が理解している限り、値が配列内にあるかどうかを確認し、それに応じてレンダリングしたいですか?
もしそうなら、あなたは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
私の観点からすると、最善の方法は次のとおりです。
<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
は表示されないためです。