3

クリックするとアンカーの 1 つに問題が発生しTypeError: obj is null、単一のアイテムがスローされます。他のすべては完全に機能し、渡されるオブジェクトに違いはありません。同じアイテムが 4 つあるリストの中で、エラーになるのは 1 つだけです。console.logs設定されていないデータはすべて表示されません。デバッグに完全に行き詰まっているところまで来ました。

    $('.admin-user-list-click').live('click', function(evt) {
        evt.preventDefault();
        var user_id = $(this).attr('user_id');
        var screen_id = $(this).attr('screen_id');
        var href = $(this).attr('href');
        var last_updated = $(this).attr('updated');
        var last_login = $(this).attr('last_login');
        var user_data = [];
        var template_structure = {logged_in: 'last_login', last_updated: 'last_updated', user_data: user_data, screen_id: screen_id, screen_data: [], identifier: 'screen'};
        var displayContainer = $(this).closest('.admin-page').find('.admin-display');
        $.ajax({
            url: href + '/index/'+user_id,
            success: function(data){
                //Basic user information
                var result = $.parseJSON(data);
                $.each(result, function(k, v) {
                    user_data.push({identifier: k, data: v});
                });
                $.ajax({
                    url: href + '/get_user_data/'+user_id,
                    success: function(data){
                        //Question and answers from registeration
                        var decode = $.parseJSON(data);
                        template_structure.screen_data = decode;
                        console.log(displayContainer)
                        console.log(pending_template)
                        console.log(template_structure)
                        console.log(pending_template(template_structure))
                        displayContainer.html(pending_template(template_structure));
                    }
                })

            }// closure of success
        })

}); //closure of click event

console.log(displayContainer)の出力[div.admin-display]


console.log(pending_template) の出力function()


console.log(template_structure)の出力Object { logged_in= "2012-10-26 08:40:16", user_data=[14], screen_id= "0001", more...}


console.log(pending_template(template_structure)) の出力には何も表示されません

問題の行は、jquery.1.8.2 の 583 にあります。

// args is for internal usage only
each: function( obj, callback, args ) {
    var name,
        i = 0,
        length = obj.length, //this is the line that errors

console.log(obj)と表示され たとき エラーが発生したとき Jquery ログのエラー

それが機能するとき 作業中のJqueryログ

4

1 に答える 1

1

問題は、私が作成したハンドルバーヘルパーが原因でした

Handlebars.registerHelper('json_check', function(answer, answer_type) {
    if(answer_type == 'json' && answer !== ''){
        text = '';
        var response = $.parseJSON(answer);
        $.each(response, function(key, value) {
            text += "<p>"+key+"</p><p>"+value+"</p>";
        });
        return new Handlebars.SafeString(text);
    } else {
        return answer;
    }
});

問題は、最初は答えが空の文字列であるかどうかをチェックしていなかったことです。したがって、空の文字列をparseJsonしようとすると、エラーがスローされました。

于 2012-10-25T21:39:11.703 に答える