我有一个简单的 vue 实例,我想在其中使用空数组作为 data.vueFlashes。:
const app = new Vue({
el: '#app',
data: {
vueFlashes: []
}
});
组件定义如下:
<template>
<transition name="fade">
<div id="flash-component" v-show="visible">
<span class="hide" @click="hide()">X</span>
{{message.message}}
</div>
</transition>
</template>
<script>
export default {
mounted: function() {
console.log('VUE component mounted.')
},
created: function()
{
this.show();
},
props: [
'message'
],
data: function() {
return {
visible: true
}
},
methods: {
show: function()
{
this.visible = true;
setTimeout(() => this.hide(), 5000);
},
hide: function()
{
this.visible = false;
}
}
}
</script>
然后我想通过这种方式从外部填充 vueFlashes:
// This is Laravel blade template
<script>
...
@foreach (session('flash_notification', collect())->toArray() as $message)
app.vueFlashes.push( {!! json_encode($message) !!} ); // Error
@endforeach
...
但它抛出一个错误:无法读取未定义的属性“推送” 如果我使用临时 js 数组然后将其分配给 app.vueFlashes 它可以工作:
<script>
...
let jsFlashes = [];
@foreach (session('flash_notification', collect())->toArray() as $message)
// jsFlashes.push( {!! json_encode($message) !!} );
@endforeach
app.vueFlashes = jsFlashes; // This works fine
这两种调用相同 app.vueFlashes 值的方法有什么区别?
绝地无双
相关分类