2011-04-04 68 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