2011-02-24 30 views
1

我的源代碼的工作是在這裏:jQuery的模板不與「每個」

http://jsfiddle.net/2pkHL/

我想不通爲什麼它不正確地呈現。另外,有沒有在另一個對象內嵌套數據的方法?

<script id='myTemplate' type='text/x-jquery-tmpl'> 

Table of stuffs: 

<table> 
{{each value}} 
<tr> 
    <td>${name}</td> 
    <td>${value}</td> 
</tr> 
{{/each}} 

</table> 


</script> 


<div id="target"> 

</div> 



var something = function() { }; 

var results = [{ name: 'First', value: 1 }, { name: 'Second', value: 2 }]; 

something.value = results; 

$('#myTemplate').tmpl(something).appendTo('#target'); 
+0

雖然這是偉大的,提供的東西活副本,*總*包括在相關的代碼這個問題本身也是如此。 StackOverflow應該獨立運行,並且外部資源可以移動或被刪除。此外,人們不應該跟隨其他地方去查看代碼。 – 2011-02-24 13:21:58

+0

對不起克羅德先生! – NibblyPig 2011-02-24 13:36:03

回答

3

你只需要兩行:我使用的是普通的對象,而不是一個函數的

var results = [{ name: 'First', value: 1 }, { name: 'Second', value: 2 }]; 
$('#myTemplate').tmpl({value: results}).appendTo('#target'); 

。請參閱演示:http://jsfiddle.net/2pkHL/6/


你可以讓事情變得更簡單。由於只有行由該數據(不是<table>)的影響,則可以包括在模板中只有行,直接供應數組作爲數據,和tmpl將自動產生用於陣列中的每個元素的HTML:

<script id='myTemplate' type='text/x-jquery-tmpl'> 
<tr> 
    <td>${name}</td> 
    <td>${value}</td> 
</tr> 
</script> 

Table of stuffs: 
<table id="target"> 
</table> 

JS:

var results = [{ name: 'First', value: 1 }, { name: 'Second', value: 2 }]; 
$('#myTemplate').tmpl(results).appendTo('#target'); 

看到這個版本在這裏:http://jsfiddle.net/2pkHL/11/

+0

這工作得很好! – NibblyPig 2011-02-24 13:37:28

+0

我不知道最後一次編輯。很酷:) – 2011-02-24 13:38:11

1

嗯,你的主要問題是,你說,VAR的東西是一個函數。如果你把它變成一個物體,你就要走了! :)

這裏是一個更新的小提琴; http://jsfiddle.net/2pkHL/5/

當然在這裏也更新VODE和:

 
<script id='myTemplate' type='text/x-jquery-tmpl'> 
Table of stuffs: 
<table> 
{{each value}} 
<tr> 
    <td>${name}</td> 
    <td>${value}</td> 
</tr> 
{{/each}} 
</table> 
</script> 
<div id="target"> 
</div> 
 

而且JS:

var something = {}; 

var results = [{ name: 'First', value: 1 }, { name: 'Second', value: 2 }]; 

something.value = results; 

$('#myTemplate').tmpl(something).appendTo('#target');
+0

你需要{每個值} ..? – 2013-01-16 20:57:06

+1

@DavidKEgghead如果你看到接受的答案,我也評論過那個答案,但簡短的答案是;沒有:) – 2013-01-18 12:37:57