Как связать возврат HTML-данных? - PullRequest
0 голосов
/ 04 апреля 2011

В просмотрах Джанго я возвращаюсь

context['foo'] = 'bar'
return render_to_response('test.html', context_instance=context)

test.html включен в main.html

При успешном выполнении ajax я прикрепляю данные test.html в div с идентификатором foobar main.html. Я хочу присоединить переменную {{foo}} к main.html.

success:function(data) {
    $('#foobar').html(data);
}

Он прикрепил данные с помощью foobar element шаблона. Есть некоторая переменная с данными, которую я хочу привязать к исходному шаблону. Как мне связать эти данные с оригинальными шаблонами?

1 Ответ

0 голосов
/ 05 апреля 2011

По сути, вы можете сделать это следующим образом:

var context = {
    foo: {
        id: 1
    }
}; 

$.get("template.html", function(result) {
    result = $(result);
    $("*", result).each(function() {
        var field = $(this).data("field");
        if (field) { // Is tag has "data-field" attribute?
            //Well, loop on context to find result.
            //e.g. result = context["foo"]["id"]

            var regExp = /([^.]+)/gi,
                o = context,
                match;
            while (match = regExp.exec(field)) { 
                var key = match[1];
                o = o[key];
            }

            $(this).text(o);
        }
    });
    $("body").append(result);
});

Template.html:

<div data-field="foo.ID"></div>

Второй вариант, если у вас есть более сложные имена полей, вы можете использовать Pure .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...