vue.js - 模板中的道具未与 VueJS 一起显示
问题描述
我一直在尝试在组件的模板中传递一个道具。我想我在这里遗漏了一些要点,而且我还没有开始将我的组件包含在单个文件中。
应用程序.js
Vue.component('chat-response', {
props: ['response', 'senderClass'],
template: '<div>From {{ senderClass }} : {{ response.text }}</div>'
})
var app = new Vue({
el: '#app_chat',
data: {
responseList: [
{ id: 0, text: 'Response 1', type: 'Owner' },
{ id: 1, text: 'Response 2', type: 'Other' },
{ id: 2, text: 'Response 3', type: 'None' }
]
}
})
page.html
...
<chat-response v-for="response in responseList"
v-bind:key="response.id"
v-bind:response="response"
v-bind:senderClass="response.type"></chat-response>
...
输出:
From : Response 1
From : Response 2
From : Response 3
如我们所见, senderClass 不会出现。我尝试了不同的方法,但只有在阅读后才能理解的错误。
我不想使用response.type而不是senderClass因为与此同时,我在安装了一个真正的 css 类之后设置了 senderClass 。
也许这是我的方法完全错误,你能给我一些提示吗?
解决方案
我认为您的财产名称是错误的。只需将page.html v-bind:senderClass="response.type"
更改为v-bind:sender-class="response.type"
http://jsfiddle.net/eywraw8t/310360/
HTML 属性名称不区分大小写。任何大写字符都将被解释为小写。所以camelCased 道具名称需要使用他们的kebab-cases 等价物。
推荐阅读
- clojure - 如何获取 ClojureScript 中 fetch API 返回的 Response 对象的正文?
- delphi - Indy 10 UdpClient 和打开声音控制
- oracle - 如何在 oracle APEX 中注销会话?
- html5-canvas - 我可以在 Fabric.js 中启用透明对象的选择/抓取吗?
- reactjs - 如何仅导出 react-admin 列表中的选定项目?
- android - 如何捕获已在 Xamarin Forms (Android) DatePicker 上选择的默认日期?
- python - Matplotlib,限制图表中的条数
- google-chrome - 如何确定 Chrome 中的 cookie 问题?
- c# - 当应用程序在后台 Xamarin.Android 中时,无法第二次获得意图额外的文本
- sql - 在 postgresql 中有一组指令的函数中,查询没有结果数据的目的地