[英]Javascript passing object from include file to page
我創建了一個javascript對象和一個函數來構建該對象的新實例。 現在,我需要在頁面上使用該對象,但是沒有運氣,我覺得自己缺少了一些東西。
JS包含文件
function MyObject() {
this.ID = 0;
this.Name = "";
}
function GetObject(param1, param2) {
//ajax call to get json string
$.ajax({ //leaving out details this part works
success: function(data) {
var jsonData = $.parseJSON(data.d);
var myObj = new MyObject();
myObj.ID = jsonData[0].ID;
myObj.Name = jsonData[0].Name;
return myObj;
});
}
此調用工作正常,但是當我嘗試訪問頁面上的數據時,我undefined
頁
<script type="text/javascript">
$(function() {
var o = GetObject(1, 2);
});
</script>
通過將DOM對象傳遞給函數並在其中分配它,我能夠使其工作。
function GetObject(param1, param2, domObj) {
//ajax call to get json string
$.ajax({ //leaving out details this part works
success: function(data) {
var jsonData = $.parseJSON(data.d);
var myObj = new MyObject();
myObj.ID = jsonData[0].ID;
myObj.Name = jsonData[0].Name;
domObj.text(myObj);
});
}
但是,這對我的應用程序不起作用,因為我要拉很多對象,並且只想在頁面上引用它們。 我想念什么? 任何幫助是極大的贊賞。
剛辭職的GetObject
是這樣的:
function GetObject(param1, param2, callback) {
//ajax call to get json string
$.ajax({ //leaving out details this part works
success: function(data) {
var jsonData = $.parseJSON(data.d);
var myObj = new MyObject();
myObj.ID = jsonData[0].ID;
myObj.Name = jsonData[0].Name;
// pass myObj via callback function parameter
return callback( myObj );
});
}
現在這樣稱呼:
$(function() {
var o = {};
GetObject(1, 2, function(response) {
o = response;
});
});
由於在GetObject
有一個AJAX請求(異步過程),並且在執行ajax success
函數后返回了對象,因此您需要借助callback
函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.