簡體   English   中英

Javascript將對象從包含文件傳遞到頁面

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM