如何通过 runesMetadata.js 访问在 validator.js 中定义的名为- val1090 的变量?
我正在使用nativescript vuejs,在这种情况下,那就是raddataform的元数据。
我遇到了错误[Vue warn]: Error in data(): "ReferenceError: val1090 is not defined"
JS: found in
JS: ---> <Runes>
JS: <NavigationEntry>
runesMetadata.js
import validator from "./validator";
export default {
mixins: validator,
data () {
return {
makeRuneMetadata: {
'isReadOnly': false,
'commitMode': 'OnLostFocus',
'validationMode': 'Immediate',
'propertyAnnotations':
[
{
'name': 'r_makeRuneSpell',
'displayName': 'Make rune spell',
'index': 0,
'editor': 'Text',
},
{
'name': 'r_mpAbove',
'displayName': 'If MP above [%]',
'index': 1,
'editor': 'Number',
val1090, // <--------------------------
},
}
}
}
validator.js
const val1090 = {
'validators': [
{
'name': 'RangeValidator',
'params': {
'minimum': 10,
'maximum': 90,
'errorMessage': 'Value must be between 10-90.',
}
},
]
}
export default val1090
**编辑如下**
因此验证器将包含更多这样的对象
onst val1090 = {
'name': 'RangeValidator',
'params': {
'minimum': 10,
'maximum': 90,
'errorMessage': 'Value must be between 10-90.'
}
};
const val115 = {
'name': 'RangeValidator',
'params': {
'minimum': 1,
'maximum': 15,
'errorMessage': 'Value must be between 1-15.'
}
};
export default{
val1090,
val115
}
在我的组件中,我制作了
created() {
console.dir(val1090);
},
所以它给了我
==== object dump start ====
JS: val1090: {
JS: "name": "RangeValidator",
JS: "params": {
JS: "minimum": 10,
JS: "maximum": 90,
JS: "errorMessage": "Value must be between 10-90."
JS: }
JS: }
JS: val115: {
JS: "name": "RangeValidator",
JS: "params": {
JS: "minimum": 1,
JS: "maximum": 15,
JS: "errorMessage": "Value must be between 1-15."
JS: }
JS: }
JS: ==== object dump end ====
如何仅获取val1090对象包含的内容?我只想要这个
{
JS: "name": "RangeValidator",
JS: "params": {
JS: "minimum": 10,
JS: "maximum": 90,
JS: "errorMessage": "Value must be between 10-90."
JS: }
JS: }
答案 0 :(得分:0)
您默认导出了val1090
,因此调用此
import validator from "./validator"
您声明一个变量validator
,其中包含在验证器文件中默认情况下导出的内容。表示validator
是包含
{
'validators': [
{
'name': 'RangeValidator',
'params': {
'minimum': 10,
'maximum': 90,
'errorMessage': 'Value must be between 10-90.',
}
},
]
}
因此,您应在validator
中使用val1090
而不是runesMetadata.js
,或将第一行更改为
import val1090 from "./validator"
编辑:如果您的验证器有更多对象,则其作用相同。 export default
值将包含在您导入的变量中。因此,如果您导出此文件:
export default {
val1090,
val115
}
并像这样导入它:
import validator from "./validator"
您基本上使用以下值创建了一个变量variable
:
validator = {
val1090: val1090,
val115: val115
}
访问val1090
值可以这样完成:
validator.val1090
答案 1 :(得分:0)
在对象初始值设定项中仅具有一个属性名称,即val1090
是新的ES6 + val1090:val1090
的“简写”,请参见MDN docs ...为了起作用,必须有一个声明为val1090
的变量...在您的代码中不是这种情况
例如
var a = 'foo', b = 42, c = {};
var o = {a, b, c};
有效,因为a,b和c被声明为变量
var a = 'foo', b = 42;
var o = {a, b, c};
失败,因为未声明c