无法从 javascript 访问对象
Cannot acces object from javascript
在我的 ASP.NET MVC 应用程序中,在 ..\Views\Shared_Layout.cshtml 中,我有以下代码行:
> <script type="text/javascript" src="http://mycontrols.com/Scripts/MyConstants.js"></script>
文件 MyConstants.js 包含以下内容:
var MyConstants = function() {
return {
DataObject1: {
MyEnum1: {
Item0: 0,
Item1: 1,
Item3: 2
}
},
DataObject2: {
MyEnum2: {
Item0: 0,
Item1: 1,
Item3: 2
}
}
};
};
现在从我的观点 (Index.cshtml) 我正在尝试在 javascript 中访问 MyEnum1 中的项目:
var myEnum = MyConstants.DataObject1.MyEnum1.Item1;
但它不起作用,在 chrome 中的 en devtools 错误下方:
jQuery.Deferred exception: Cannot read property 'MyEnum1'of undefined
TypeError: Cannot read property 'MyEnum1' of undefined
MyConstants
是一个函数,returns是一个对象,所以你需要调用它:
var myEnum = MyConstants().DataObject1.MyEnum1.Item1;
如果您希望保留当前语法来检索值,则需要将 MyConstants
转换为对象:
var MyConstants = {
DataObject1: {
MyEnum1: {
Item0: 0,
Item1: 1,
Item3: 2
}
},
DataObject2: {
MyEnum2: {
Item0: 0,
Item1: 1,
Item3: 2
}
}
};
在我的 ASP.NET MVC 应用程序中,在 ..\Views\Shared_Layout.cshtml 中,我有以下代码行:
> <script type="text/javascript" src="http://mycontrols.com/Scripts/MyConstants.js"></script>
文件 MyConstants.js 包含以下内容:
var MyConstants = function() {
return {
DataObject1: {
MyEnum1: {
Item0: 0,
Item1: 1,
Item3: 2
}
},
DataObject2: {
MyEnum2: {
Item0: 0,
Item1: 1,
Item3: 2
}
}
};
};
现在从我的观点 (Index.cshtml) 我正在尝试在 javascript 中访问 MyEnum1 中的项目:
var myEnum = MyConstants.DataObject1.MyEnum1.Item1;
但它不起作用,在 chrome 中的 en devtools 错误下方:
jQuery.Deferred exception: Cannot read property 'MyEnum1'of undefined TypeError: Cannot read property 'MyEnum1' of undefined
MyConstants
是一个函数,returns是一个对象,所以你需要调用它:
var myEnum = MyConstants().DataObject1.MyEnum1.Item1;
如果您希望保留当前语法来检索值,则需要将 MyConstants
转换为对象:
var MyConstants = {
DataObject1: {
MyEnum1: {
Item0: 0,
Item1: 1,
Item3: 2
}
},
DataObject2: {
MyEnum2: {
Item0: 0,
Item1: 1,
Item3: 2
}
}
};