如何防止Vue.js在markdown生成的<code>标签内运行代码?这是一个Laravel 5.5 + Vue.js 2.x项目,带有'andreasindal/laravel-markdown'套餐用于降价.Vue试图运行的代码实际上是一个Laravel Blade指令,看起来Blade本身并没有尝试处理它(因为我在控制台中收到了关于此的Vue错误).
{{ session('notificationType') }}
Run Code Online (Sandbox Code Playgroud)
我厌倦了修改Parsedown.php类(由'andreasindal/laravel-markdown'使用)来用HTML ASCII字符替换所有'{'.替换确实有效,但Vue仍在处理这些.
我正在使用Laravel和laravel-cors软件包作为后端。我正在使用来自不同域的axios发出API请求。基本上,一切正常。
然后,我创建了此新路线以按ID检索单个对象。当具有id的对象存在时,我会收到数据的正常响应。如果没有,我会收到正常的404响应(在“网络”标签中选中),但在控制台中却收到此错误:
跨域请求被阻止:同源策略禁止读取位于http:// ...的远程资源(原因:缺少CORS标头“ Access-Control-Allow-Origin”)。
而且,axios不会将其确定为404错误,而是未知的“网络错误”。我无法在SPA中正确处理此响应,并且我认为这不是预期的行为。
我正在尝试制作一个多文本输入组件.有一个父Vue组件来管理单个字段和一个组件用于单个输入.
父组件通过v-for渲染子组件,该组件绑定到对象数组.
data() {
return {
lastItemId: 0,
items: [{ id: this.lastItemId, value: '', showDeleteBtn: false}]
}
},
Run Code Online (Sandbox Code Playgroud)
模板:
<div>
<input-item v-for='(item, index) in items'
:key="item.id"
:default-data="item"
@itemAdded="addItemAfter(index)"></input-item>
</div>
Run Code Online (Sandbox Code Playgroud)
每当用户开始输入列表中的最后一个字段时,我发出一个事件,在其后面添加一个新的文本字段.
addItemAfter(index) {
if (index == this.items.length - 1) {
this.items.push({
id: ++this.lastItemId,
value: '',
showDeleteBtn: false
});
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,我还需要更新当前索引处的项目以显示该字段附近的删除按钮.无论我做什么,Vue都不会重新渲染该组件,除非我为该索引设置了一个具有不同ID的对象 - 这不是我想要的.
我尝试过的事情:
this.items[index].showDeleteBtn = true;
Run Code Online (Sandbox Code Playgroud)
let item = this.items[index];
item.showDeleteBtn = true;
this.$set(this.items, index, item);
Run Code Online (Sandbox Code Playgroud)
let item = this.items[index];
item.showDeleteBtn = true;
this.items.splice(index, 1, item);
Run Code Online (Sandbox Code Playgroud)
this.$set(this.items[index], 'showDeleteBtn', true);
Run Code Online (Sandbox Code Playgroud)
更新 …