gpt4 book ai didi

javascript - Laravel 5.3、Vue.js 2+ 无法使列表呈现 (v-for) 正常工作

转载 作者:搜寻专家 更新时间:2023-10-30 22:45:08 24 4
gpt4 key购买 nike

public/js/symp.js(初始帖子)

new Vue({
el :'#symp',
data :{
tease: 'test',
items: [
{ message: 'Foo', subject: 'A' },
{ message: 'Bar', subject: 'B' }
]
}
});

resources/views/dash.blade.php(初始帖子)

<html>
<body>
@extends('layouts.app') [ this includes symp.js and calls @yeild('content') ]

@section('content')
<div id="symp">
<div>
<span>subject</span>
<span>message</span>
</div>
tease: <span>@{{ tease }}</span>
<div v-for="item in items">
sub: <span>@{{ item.subject }}</span>
msg: <span>@{{ item.message }}</span>
</div>
</div>
@endsection

我知道 Laravel 与 {{ }} 打架,所以需要在前面加上 @,但我的理解是上面的演示片段代码应该呈现 tease: test then two rows
sub: A msg: Foo
sub: B msg: Bar
... 唉,我看到了挑逗:主题消息,没有挑逗值(value),根本没有行。

搞笑的是,我有一个文件夹作为我正在构建的项目的一部分,它的工作版本为 http://www.hc-kr.com/2016/11/laravel-5-vuejs-crud-with-notification-pagination-laravel.html到位,但是该文件夹强制使用 Vue.js 1.x,所以这似乎是 Laravel 5.3 的 vue.js 2.x 的独特问题?


[根据@PanJunjie潘俊杰的建议更新:-)]

资源/views/dash.blade.php

@extends('layouts.app')

@section('content')
<div id="symp">
</div>
@endsection

资源/views/layout/app.blade.php

<html>
<script src="/js/app.js"></script>
<body>

...

<template id="symp-temp">
tease: <span>@{{ tease }}</span>
<div v-for="item in items">
sub: <span>@{{ item.subject }}</span>
msg: <span>@{{ item.message }}</span>
</div>
</template>

</body>

<script src="/js/symp.js"></script>
</html>

公共(public)/js/symp.js

new Vue({
el :'#symp',
name: 'symp', /* unnecessary? */
template: '#symp-temp', /* this helps a bit :-) */
data :{
tease: 'well',
items: [
{ message: 'Foo', subject: 'A' },
{ message: 'Bar', subject: 'B' }
]
}
});

一些进展。挑逗值现在显示,但项目行仍然不显示。 JavaScript 控制台报告这个 ...

[Vue warn]: Component template should contain exactly one root element:

tease: <span>{{ tease }}</span>
<div v-for="item in items">
sub: <span>{{ item.subject }}</span>
msg: <span>{{ item.message }}</span>
</div>

最佳答案

这在 Vue 1.x 中运行良好,但在 Vue 2 中,您需要将模板包裹在 div 标签上:

资源/views/layout/app.blade.php

<template id="symp-temp">
<div>
tease: <span>@{{ tease }}</span>
<div v-for="item in items">
sub: <span>@{{ item.subject }}</span>
msg: <span>@{{ item.message }}</span>
</div>
</div>
</template>

您可以在 github https://github.com/vuejs/vue-loader/issues/384 上查看问题

关于javascript - Laravel 5.3、Vue.js 2+ 无法使列表呈现 (v-for) 正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40833620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com