将原始 html 从 Vue 返回到 Laravel Blade

Posted

技术标签:

【中文标题】将原始 html 从 Vue 返回到 Laravel Blade【英文标题】:Returning raw html from Vue to Laravel Blade 【发布时间】:2018-04-20 12:23:37 【问题描述】:

我正在尝试将表单的输入作为 html markdown 预览到另一个 div。

<div class="form-group" id="form">
  !! Form::open(['route' => 'post.create']) !!
     Form::text('title', 'title', ['class' => 'form-control']) 
     Form::hidden('category_id', $category->id) 
     Form::textarea('body', 'body', ['class' => 'form-control', 'v-model' => 'input']) 
    <div><?php echo ' output '; ?></div>
     Form::submit('send', ['class' => 'btn btn-sm btn-default btn-block']) 
  !! Form::close() !!
</div>

app.js:

const app = new Vue(
    el: '#form',
    data: 
      input: '',
      output: ''
    ,
    watch: 
      input: function(val) 
        this.output = marked(val);
      
    
);

@ output 返回相同的结果,即控制台出现错误的空白页面:

- invalid expression: Unexpected token ) in

_s( output)+""

Raw expression:  output 

【问题讨论】:

你为什么在刀片上做php echo???? 这与其他人建议的 @ output 基本相同 【参考方案1】:
<div v-text="output"></div>

<div>@ output </div>

或在手表中使用旧方式...

input: function(val) 
    this.output = marked(val);
    $('div.output').text(this.output);

【讨论】:

mersi azizam,但这会以 html 标签作为字符串返回【参考方案2】:

如果您的输出是原始 html,请使用:

<div v-html="output"></div>

【讨论】:

是的,就是这个!谢谢!

以上是关于将原始 html 从 Vue 返回到 Laravel Blade的主要内容,如果未能解决你的问题,请参考以下文章

属性中的 Vue.js 原始 HTML

html 表单返回空对象而不是输入数据| Vue

Vue.js 打印原始 html 并调用组件方法

如何将外部 HTML 模板动态导入和解析到 Vue 组件中?

vue数组变异方法

Vue-cli 如何配置服务器反向代理