javascript - 如何让 Vue 在表单字段中使用与 value 属性不同的值?
问题描述
我有一个很奇怪的问题。说这个:
<select name="screw[type]" v-model="form.screw.type">
<option value="My value" ><?php _e('My value', 'fiam'); ?></option>
//[...]
自然,我在其他地方这样做:
{{ form.screw.type }} // will write "My value"
美好的。嗯。。不。因为我需要翻译那个字符串。但是我不能在字段的值中正确地做到这一点,因为我需要将其发送未翻译。换句话说:
- 我不需要翻译字段的值
- 我需要翻译 Vue 将要写的内容(比如选项的标签)
我希望我能做这样的事情:
<option value="My value" data-tvalue="<?php _e('My value', 'fiam'); ?>" ><?php _e('My value', 'fiam'); ?></option>
(for who of you didn't know, _e() is just a WordPress i18n function)
然后在输出时使用 Vuedata-tvalue
而不是。value
有可能吗?
解决方案
现在,我最终创建了一个“阴影”属性并通过watch
函数对其进行了更改。请注意,我通过自定义ref
道具和Vue.$refs
. 所以:
<select name="screw[type]" ref="screw_type_select" v-model="form.screw.type">
<option value="My value" data-value="<?php _e('My value', 'context'); ?>"><?php _e('My value', 'context'); ?></option>
//[...]
然后在 Vue 中:
var vueapp = new Vue({
el: '#form'
,data:{
form:{
,screw:{
type: "Svasata Piana"
,type_t: "Svasata Piana"
}
}
}// data
,watch:{
'form.screw.type':function(){
var select = this.$refs.screw_type_select;
this.form.screw.type_t = select.options[select.selectedIndex].getAttribute('data-value')
}
}
});
然后再次在html中:
{{ form.screw.type_t }} // instead of {{ form.screw.type }}
推荐阅读
- jenkins - 在没有从站的远程主机上执行 Jenkins 管道
- python - Numpy fromfunction 返回错误:用作索引的数组必须是整数(或布尔)类型
- android - 'SharedPreferencesUtils()' 在 'com.google.android.gms.common.util.SharedPreferencesUtils 中具有私有访问权限
- java - 如何证明String是否以int结尾?
- angular - 后台模式 plugin_not_installed ,甚至后台模式插件已经安装在 ionic 项目中
- azure-logic-apps - 如何创建一个可以检查 Azure 存储表中具有空值的行数的逻辑应用程序?
- python - ImportError:没有名为 bs4 Atom 的模块
- wso2 - Siddhi externalTime 窗口问题
- mysql - 向查询添加第二个连接会使值重复
- python - Tkinter 在循环外访问 Loop 创建的 Canvas 对象