我想更改一个数据属性并在Laravel中的Vue实例上运行一个方法。但是,由于使用webpack和laravel,我似乎无法访问该实例,我希望:
所以呢
window.app
下面是我正在加载的Blade视图,您可以看到我在main中添加了一个脚本标记
layout.blade.php
,只需尝试更改Vue实例数据属性,然后运行一个方法。
@push('scripts')
<script>
app.unsaved = true;
app.triggerEvent(null, 'models', null);
</script>
@endpush
下面是我的一部分
app.js
const app = new Vue({
el: '#app',
components: {
'models-select': ModelsSelect
},
data: {
showModel: false,
unsaved: false
},
mounted: function() {
let _self = this;
(function() {
document.querySelectorAll("input, textarea, select").forEach(function(e) {
e.addEventListener('change', function() {
_self.unsaved = true;
e.classList.add('is-changed');
});
});
function unloadPage(){
if (_self.unsaved) return 'You appear to have un-saved changes!';
}
window.onbeforeunload = unloadPage;
})();
},
methods: {
triggerEvent: function(event, target, property)
{
app.$refs[target].update(event, property);
}
如您所见,我希望通过全局
我在
应用程序.js
在运行
triggerEvent
app.triggerEvent不是函数