1

已解决 - 等待标记(stackoverflow 延迟)

萤火虫没有错误。在我无法弄清楚为什么它不起作用之前,我已经这样做了。asyncFetchContent()是从其他地方解雇的。contentController在别处创建。

function ContentController() {

}

ContentController.prototype.asyncFetchContent = function(){ 

         $.getJSON( '/content/TestContent.json', 
            function(data){
                contentController.displayContentCallback( data ); 
                } 
         );
}

ContentController.prototype.displayContentCallback = function( javascriptObject ){ 
    alert( "in callback");
    $( "#testID" ).html( javascriptObject.title );
}

Firebug 将在定义处接受断点displayContentCallback()并停止,但一旦您越过,就会静默失败。javascriptObjectundefined

提前致谢,

圭多

4

2 回答 2

2

手册

重要提示:从 jQuery 1.4 开始,如果 JSON 文件包含语法错误,请求通常会静默失败。因此,请避免频繁手动编辑 JSON 数据。JSON 是一种数据交换格式,其语法规则比 JavaScript 的对象文字表示法更严格。例如,在 JSON 中表示的所有字符串,无论是属性还是值,都必须用双引号括起来。有关 JSON 格式的详细信息,请参阅http://json.org/

您的 JSON 是否包含错误?

于 2012-08-16T23:16:19.733 回答
0

contentController.displayContentCallback(数据); 不存在。a)它是 ContentController,而不是 contentController 和 b)由于您使用的是原型,它必须类似于

function ContentController() {

}

ContentController.prototype.asyncFetchContent = function(){ 

     $.getJSON( '/content/TestContent.json', 
        function(data){
            var x = new ContentController();
            x.displayContentCallback( data ); 
        } 
     );
}

ContentController.prototype.displayContentCallback = function( javascriptObject ){ 
    alert( "in callback");
    $( "#testID" ).html( javascriptObject.title );
}

我很确定这应该可行。

于 2012-08-16T23:18:08.973 回答