1

IT IS SOLVED - WAITING TO MARK (stackoverflow delay)

There's no error in firebug. I've done this before I just can't figure out why it is not working. asyncFetchContent() is fired from elsewhere. contentController is created elsewhere.

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 will accept a breakpoint at the definition of displayContentCallback() and stop but then silently fails once you stepover. javascriptObject is undefined.

Thanks-in-advance,

Guido

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 に答える