【发布时间】:2019-02-14 10:02:51
【问题描述】:
我想知道如何在 laravel 中将变量传递给 vue 组件?
当我们使用刀片时,我们可以传递如下变量:
$now = Carbon::now();
return view('xxxxxxxx', compact('now');
这样我就可以在xxxxxxxx刀片文件中使用$now。但是 vue 组件呢?我们通常通过 json 为组件返回数据,而使用 axios 路由我们获取该信息无法为我们的确切组件指定此类数据?
如果我想在single.vue 组件中使用$now = Carbon::now(); 怎么办?
我怎样才能做到这一点?
更新
这是我想做的时间,因为碳不能使用(基于 cmets)我想使用moment.js
逻辑
- 如果项目截止日期未到,让用户投标
- 如果项目截止日期已到,请勿让用户投标
template
<template v-if="`${project.deadline | timeAgo}`">
pssed (will be replaced by button is just for test)
</template>
<template v-else>
still have time (will be replaced by button is just for test)
</template>
script
var moment = require('moment');
export default {
data(){
return {
project : '',
}
},
mounted: function() {
// I found this code by google not sure if is currect!
Vue.filter('timeAgo', function(value){
return moment(value) >= fromNow()
});
},
}
根据我上面的代码,这里是结果
【问题讨论】:
-
你不能使用,即,moment.js 或 DateTime 吗?无论如何,Jeffrey Way 为 Laravel 的 JavaScript var 包提供了 php vars,我认为您可以使用它并将变量传递给您的组件?或者只是 json 编码和解码 php var 到你的组件中。
-
@Wreigh 我目前在我的组件中使用moment.js,但很难用它做功能(至少对我来说!)例如,我不想让用户在达到特定时间后执行某些操作(基于数据库)我不知道该怎么做,而碳是小菜一碟:\
-
啊,那么,你想在 Javascript 中使用 Carbon 对象及其方法吗?我认为这是不可能的。因为您必须序列化整个 PHP 类才能使用它,而且我相信 Carbon 使用 PHP 的 DateTime 类。您想使用哪些示例函数?
-
您介意展示您的 Vue 组件文件吗?我很乐意提供帮助:D
-
@krisanalfa 更新了我的问题,兄弟,
标签: laravel vue.js vue-component