我有2个外部JavaScript文件,一个设置为“命名空间”,另一个文件调用它。
以下是我的“命名空间”的样子
var GlobalScript = {
GetAllStates: function () {
$.ajax({
type: "GET",
url: URLParam.GetStatesForDropdown,
contentType: "application/json; charset=utf-8",
success: function (data, textStatus, jqXHR) {
ShowStates(data);
}
})
},
ShowStates: function (stateData) {
$("#acVendorState").kendoDropDownList({
dataSource: stateData,
dataTextField: "StateName",
dataValueField: "StateID",
animation: false,
optionLabel: {
StateName: "-- Select State --"
}
});
}
}
这是调用GetAllStates()函数的脚本,
$(document).ready(function () {
GlobalScript.GetAllStates();
});
现在这不起作用,但是,如果使“命名空间”文件看起来像这样......
function ShowStates(stateData){
$("#acVendorState").kendoDropDownList({
dataSource: stateData,
dataTextField: "StateName",
dataValueField: "StateID",
animation: false,
optionLabel: {
StateName: "-- Select State --"
}
});
}
var GlobalScript = {
GetAllStates: function () {
$.ajax({
type: "GET",
url: URLParam.GetStatesForDropdown,
contentType: "application/json; charset=utf-8",
success: function (data, textStatus, jqXHR) {
ShowStates(data);
}
})
}
}
然后我的视图将填充下拉列表。
我的问题是如何以第一种方式让它按照我的方式工作,因为如果我以第二种方式实现它,那么它就像我做的那样毫无意义(至少据我所知)它
答案 0 :(得分:1)
ShowStates
不是变量。它是分配给GlobalScript
的对象的属性。
ShowStates(data);
应为GlobalScript.ShowStates(data);
答案 1 :(得分:0)
在js中尝试此代码
var GlobalScript = {
GetAllStates: function () {
var self = this; // <= self object created
$.ajax({
type: "GET",
url: URLParam.GetStatesForDropdown,
contentType: "application/json; charset=utf-8",
success: function (data, textStatus, jqXHR) {
self.ShowStates(data);
}
})
},
ShowStates: function (stateData) {
$("#acVendorState").kendoDropDownList({
dataSource: stateData,
dataTextField: "StateName",
dataValueField: "StateID",
animation: false,
optionLabel: {
StateName: "-- Select State --"
}
});
}
}