javascript - Vue.js 动态指令参数不起作用
问题描述
我正在学习 Vue.js(2.6.*)。在这里,他们提到了动态指令参数。根据那里的文档,下面的代码应该可以工作-
<a v-bind:[attributeName]="url"> ... </a>
如果我有一个名为的数据属性
属性名
在我的 vue 实例中。但下面的代码显示错误 -
var app = new Vue({
el: "#app",
data: {
message: "Hello World",
argValue: "This is a simple text",
dynamicArg: "title"
}
})
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="app">
<p v-bind:[dynamicArg]="argValue">
{{message}}
</p>
</div>
动态指令参数的值无效(预期的字符串或 null):未定义
我在这里缺少什么?TIA
解决方案
在“动态参数表达式约束”中它说:
动态参数表达式有一些语法限制,因为某些字符(例如空格和引号)在 HTML 属性名称中是无效的。例如,以下内容无效:
<!-- This will trigger a compiler warning. -->
<a v-bind:['foo' + bar]="value"> ... </a>
解决方法是使用不带空格或引号的表达式,或者用计算属性替换复杂表达式。
camelCase似乎也给出了警告,但没有提到:
var app = new Vue({
el: "#app",
data() {
return {
message: "Hello World",
argValue: "This is a simple text",
dynamicarg: "data-foo"
}
}
});
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<div id="app">
<div :[dynamicarg]="argValue">{{ message }}</div>
</div>
或者更好的是,创建一个返回所需字符串名称的计算属性。
推荐阅读
- aws-lambda - AWS Lambda 函数中的 CDI 注入对象为空
- javascript - 选择的发布值始终为 -1 / 无法获取先前选择的值
- javascript - 如何从我的 javascript 组件中触发一个函数,该函数可能存在于导入它的文件中,也可能不存在?
- flutter - Dart/Flutter WebSocket 服务器/客户端在同一侧无法正常工作
- bash - 第二个参数是获取shell脚本函数中第一个参数的内容
- xcode - 如何更改 Flutter.podspec 文件中的 s.ios.deployment_target = '8.0'?
- css - 如何使flex父中的文本不填充宽度
- python-3.x - 创建循环以运行脚本 n 次并将输出添加到新数据帧
- regex - 可以将权重应用于每个元素是模式匹配算法吗?
- testing - Jest-Puppeteer 在一个文件中测试多个案例