从Laravel传递到Vue时,原始HTML标记会被剥离

从Laravel传递到Vue时,原始HTML标记会被剥离,laravel,vue.js,Laravel,Vue.js,我正在向现有的Laravel系统添加Vue支持。一些数据字段包含HTML标记 使用{!!选项,在Laravel中渲染它很容易 在将其传递给Vue时,我看到一些标记被省略了 例如 从Laravel传递的数据-我已经用刀片中的dd命令验证了这一点 <div> <ul> <li>List 1</li> <li>List 2</li> &

我正在向现有的Laravel系统添加Vue支持。一些数据字段包含HTML标记

使用{!!选项,在Laravel中渲染它很容易

在将其传递给Vue时,我看到一些标记被省略了

例如

从Laravel传递的数据-我已经用刀片中的dd命令验证了这一点

    <div>
        <ul>
            <li>List 1</li>
            <li>List 2</li>
            <li>List 3</li>
        </ul>
    </div>

  • 清单1
  • 清单2
  • 清单3
传递给Vue,如下所示

这是在Vue中收到的数据。我已使用console.log和Vue开发人员工具对其进行了验证

    List1</li>List 2</li>List 3</li>
List1列表2列表3

任何关于我可能做错什么的指点都会很好。

我也面临同样的问题。这都是关于XSS漏洞的。解决方法可以是使用vue组件上的插槽和echo渲染视图,但也可以使用道具

示例组件.vue


导出默认值{};
返回渲染视图:

路由::获取('/test',函数(){ 返回视图('test.index',['view'=>view('test.list',['num'=>5])->render(); }); test\index.blade.php


{!!$view!!}
test\list.blade.php


    @对于($i=0;$i<$num;$i++)
  • 列表{{$i+1}
  • @结束
您也可以使用道具,但需要v-html指令:

示例组件.vue


导出默认值{
道具:['view']};
test\index.blade.php



“作为传递给vue”…您的问题中是否遗漏了某些内容?如果您想让Vue插入HTML,您需要使用“这是否回答了您的问题?”我知道v-HTML指令将帮助显示HTML。我的问题是Vue接收到的数据不正确。一些标记在传输过程中被剥离。您尝试过:产品数据=”{{json_encode($product)}“你能发布一些你的vue代码的示例吗?谢谢。我会尝试第一种方法。我已经尝试了第二种方法,但它不起作用。非常感谢。我应该在这个周末回到这个问题上。我会在我再次研究它后ping你。lot方法很有效。非常感谢