【发布时间】:2017-06-16 16:43:55
【问题描述】:
我有 2 个组件
组件1,名称为SearchResultVue.vue组件
组件是这样的:
<template>
...
<span class="pull-right" v-show="totalall>8">
<pagination :data="list" :baseUrl="this.Laravel.baseUrl" :total="totalPage" :nextPage="nextPage" :prevPage="prevPage"></pagination>
</span>
...
</template>
组件调用组件2。名称为Pagination.vue组件
分页组件是这样的:
<template>
<nav aria-label="Page navigation">
<ul class="pagination">
<li>
<a :href="prevPage" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<li v-for="i in total">
<a :href="baseUrl+'/search-result?page='+i">{{i}}</a>
</li>
<li>
<a :href="nextPage" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</nav>
</template>
<script>
export default{
props:['total', 'data', 'nextPage', 'prevPage'],
computed:{
baseUrl(){
return window.Laravel.baseUrl
}
}
}
</script>
执行时,在控制台存在2个错误
错误1是这样的:
[Vue 警告]:属性或方法“Laravel”未在 实例,但在渲染期间引用。确保声明反应式 数据选项中的数据属性。
错误2是这样的:
未捕获的类型错误:无法读取未定义的属性“baseUrl”
我该如何解决这些错误?
【问题讨论】:
-
你不能从 VueJS 访问 Laravel 变量。
window中无论如何都没有定义它... -
@M U,那么我的问题的正确解决方案是什么?
-
为什么需要baseurl?它是环境变量,所以你可以在你的 webpack 配置中设置它并以这种方式使用它?
-
@M U,因为在本地主机和服务器上,它是不同的 url。在本地主机中,我的网址是这样的:
http://myshop.dev/search-result。在服务器上,我的网址是这样的:http://myshop.ct-staging.tk/search-result。如何设置我的 webpack 配置? -
发布了完整的答案,你应该怎么做。
标签: javascript pagination vue.js laravel-5.3 vuejs2