2011-04-04 67 views
0

在Django的观点我回到如何绑定返回的html数据?

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

的test.html由main.html中

在阿贾克斯成功列入我的test.html的数据附加到DIV具有main.html中我的ID FOOBAR想要在main.html中附加{{foo}}变量。

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

它附加了数据与模板的foobar element。有一些变量与我想要将其绑定到原始模板的数据有关。我应该如何将这些数据与原始模板绑定?

+1

定义你说“* template *”时的意思。 – prodigitalson 2011-04-04 19:10:22

+0

模板是任何html文件。说foo.html – 2011-04-04 19:14:09

+1

你需要提供更多关于这个数据是什么以及你想要绑定它的信息。这当然是可能的,但我们需要更多的信息。作为旁注,这听起来像你真正想要的是使用XSL。 – justkt 2011-04-04 19:15:55

回答

0

基本上你可以做这样的:

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

+0

哦,我的。我想我没有意识到问题。抱歉。 – cem 2011-04-04 20:52:08