2013-02-15 44 views
1
模板

我試圖用把手(模板)通過Ajax組織已取得的JSON對象jQuery和JSON的

這是對象是什麼樣子,PHP:

[0] => Url Object 
    (
     [url_id] => 1 
     [url] => www.stackoverflow.com 
     [tags] => Array 
      (
       [0] => Tag Object 
        (
         [tag_id] => 1 
         [tag_name] => programming 
        ) 

       [1] => Tag Object 
        (
         [tag_id] => 2 
         [tag_name] => questions 
        ) 

      ) 

    ) 

[1] => Url Object 
    (
     [url_id] => 2 
     [url] => www.twitter.com 
     [tags] => Array 
      (
       [0] => Tag Object 
        (
         [tag_id] => 3 
         [tag_name] => messaging 
        ) 

      ) 

    ) 

我「M能夠[0]和對象[1]通過從兩個對象獲得url_id和url:(JQUERY)

$.getJSON(url,function(data){ 

        Bookmarks = $.map(data,function(bookmark){ //segundo param = callback function 

            return{ 
             url_id: bookmark.url_id, 
             url: bookmark.url, 
             tags: bookmark.tags 
              } 
                    }); 

       var contenedor = $('#scriptmark').html(); 
       var template = Handlebars.compile(contenedor); 
       var i = 0; 
       while(i < Bookmarks.length){ 
       $('#sites').append(template(Bookmarks[i])); 
       i++;} 
     }); 

最後,這是我的模板是什麼樣子:

<script id="script" type="text/x-handlebars-template"> 


      <div class="site"> 
      Site: {{url}} Tags: {{tag}} 
      </div> 


</script> 

我試圖找出如何讓這些標籤,因爲當我做tamplating我明明得到返回的對象

+0

您的意思是從您使用模板創建的div恢復標籤嗎?或者從使用Ajax獲得的JSON變量中獲取標籤數據? – Naryl 2013-02-15 11:00:09

+0

我需要獲取Tag對象中的字段,我知道我可以讓他們說例如Bookmarks。[i] .tags [0] .tag_name,但我不能想出如何通過我的方法獲取它們的想法jQuery的循環(請參閱問題的Jquery部分)感謝閱讀 – 2013-02-15 11:03:11

+0

使用'helper'方法循環'tags'並返回字符串 – charlietfl 2013-02-15 11:10:17

回答

0

也許這樣?

Bookmarks = $.map(data, 
    function(bookmark){ //segundo param = callback function 
     var tagstring=""; 
     $.each(bookmark.tags, function(index, value){ 
       if(index > 0){tagstring+=", ";} 
       tagstring+=value.tag_id+"-->"+value.tag_name; 
     } 
     return 
     { 
       url_id: bookmark.url_id, 
       url: bookmark.url, 
       tags: tagstring 
     } 
     } 
);