67 lines
1.3 KiB
Plaintext
67 lines
1.3 KiB
Plaintext
|
<vue>
|
||
|
<div id="conteneur" >
|
||
|
<compofilm each={ film in state.films.results } v_film="{ film }" v_setVisiSetter="{ addVisibilitySetter }" v_setFilmSetter="{ addSetter }">
|
||
|
</compofilm> <!--Refuse de s'update-->
|
||
|
</div>
|
||
|
|
||
|
<script>
|
||
|
export default {
|
||
|
state: {
|
||
|
loading: false,
|
||
|
error: null,
|
||
|
films: [],
|
||
|
visible: true,
|
||
|
setters: [],
|
||
|
film_setters: [],
|
||
|
genres_names: [],
|
||
|
genres_ids: []
|
||
|
},
|
||
|
reset() {
|
||
|
this.update({
|
||
|
loading: false,
|
||
|
error: null,
|
||
|
films: [],
|
||
|
visible: true,
|
||
|
setters: [],
|
||
|
film_setters: [],
|
||
|
genres_names: [],
|
||
|
genres_ids: []
|
||
|
})
|
||
|
},
|
||
|
async onBeforeMount(props,state){
|
||
|
await new Promise(r => setTimeout(r, 200));
|
||
|
|
||
|
props.t_setSetters(this.setFilms,this.setVisibilite);
|
||
|
|
||
|
this.update();
|
||
|
},
|
||
|
setFilms(data){
|
||
|
this.state.films=data;
|
||
|
i = 0;
|
||
|
for(setter of this.state.film_setters){
|
||
|
setter(data.results[i++]);
|
||
|
}
|
||
|
},
|
||
|
setVisibilite(visible){
|
||
|
this.state.visible=visible;
|
||
|
for(setter of this.state.setters){
|
||
|
setter(visible);
|
||
|
}
|
||
|
},
|
||
|
addVisibilitySetter(setter){
|
||
|
this.state.setters.push(setter);
|
||
|
},
|
||
|
addSetter(setter){
|
||
|
this.state.film_setters.push(setter);
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style>
|
||
|
compofilm{
|
||
|
display: inline-block;
|
||
|
width: 22%;
|
||
|
margin: 1%;
|
||
|
}
|
||
|
</style>
|
||
|
</vue>
|