从Laravel传递到Vue时,原始HTML标记会被剥离
我正在向现有的Laravel系统添加Vue支持。一些数据字段包含HTML标记 使用{!!选项,在Laravel中渲染它很容易 在将其传递给Vue时,我看到一些标记被省略了 例如 从Laravel传递的数据-我已经用刀片中的dd命令验证了这一点从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> &
<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方法很有效。非常感谢