Laravel 控制器将值作为 Vue 道具传递

Posted

技术标签:

【中文标题】Laravel 控制器将值作为 Vue 道具传递【英文标题】:Laravel controller passing value as Vue prop 【发布时间】:2019-12-31 22:37:17 【问题描述】:

我目前有一个 Laravel 路由通向我的控制器的 index 函数,并带有传递的 ID,我在视图中返回 id

public function index($id)

    return view('progress')
        ->with('identifier', $id);

在所述视图中加载的组件中,我正在尝试访问 identifier 作为我的 vue 脚本中的道具

props: ['identifier'],
    methods: 
        getInformation() 
            this.$root.$emit('fetchEvent');
        ,
    ,
    mounted () 
        console.dir(this.identifier);
    

但是,我的控制台显示未定义,我不知道如何将传递的 identifier 作为道具。

我做错了什么?

更新:

完整的模板代码

<template>
    <div>
        <div class="tab-content">                
                <item-component 
                    :web-identifier="identifier"
                ></item-component>
        </div>
    </div>

</template>


<script>
export default 
   props: ['identifier'],
    methods: 
        getInformation() 
            this.$root.$emit('fetchEvent');
        ,
    ,
    mounted () 
        console.dir(this.identifier);
    

</script>

刀片:

<div>
<task-detail-component></task-detail-component>
</div>

【问题讨论】:

如何在进度模板中传递道具 代码的底部是我的进度模板。我想这是我不确定的,我正在尝试通过 props 使标识符在模板中可访问 请分享进度模板代码 @BoussadjraBrahim 没有其他东西,但我分享了它 您在刀片模板中调用该组件的位置和方式 【参考方案1】:

在刀片模板中按如下方式传递该数据:

<div>
<task-detail-component :identifier="$identifier"></task-detail-component>
</div>

【讨论】:

好的,我的控制台部分显示未定义是有原因的吗? 或尝试&lt;task-detail-component :identifier="$identifier"&gt;&lt;/task-detail-component&gt;$identifier 在构建时出现意外令牌的编译错误 是的。刀片视图注入变量对浏览器不可用,除非您以这种方式显式绑定它们。 我现在明白了,我相信了。谢谢!【参考方案2】:

在您需要传递identifier 的模板中,它将是这样的

<div>
<task-detail-component :identifier="$identifier"></task-detail-component>
</div>

【讨论】:

好的,我明白了,为什么控制台打印未定义,我试图在控制台中显示它? 您确定将identifier 变量传递给包含此组件的视图吗? 你可以看到我在哪里将它传递给我上面的控制器中的视图 尝试将其作为 api 并使用 axios 从 ajax 获取它到您的组件中

以上是关于Laravel 控制器将值作为 Vue 道具传递的主要内容,如果未能解决你的问题,请参考以下文章

无法将 Laravel 刀片文件中的道具传递给 Vue 组件

Vue 与 Laravel,传递 null 道具

在 setState 不起作用后,Reactjs 将值作为道具传递

Vue.js - 如何将 prop 作为 json 数组传递并在子组件中正确使用?

Vue - 将方法作为道具传递给孩子

Vue2将任意命名变量作为道具传递