繁体   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