2013-12-16 2 views
0

Я просто пытаюсь получить голову вокруг позвоночника в данный момент.Образец шаблона Backbone Json

Итак, у меня есть модель, загрузите файл JSON вместе с коллекцией, но я не могу перенести лучший способ отображения массива в представлении на шаблон подчеркивания.

Я довольно устал и, кажется, прошел через множество учебников, все с различными способами вывода этих данных через представление к шаблону. Есть ли правильный способ сделать это? Я предполагаю, что это должно быть цикл с _.each? Я даже на правильном пути? ;)

См. Приведенный ниже код.

Большое спасибо

<head> 




</head> 
<body> 
    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.min.js"></script> 
    <script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script> 
    <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone.js"></script> 


    <script type="text/javascript"> 

     var News = Backbone.Model.extend(); 

     var Newscollection = Backbone.Collection.extend({ 
      model: News, 
      url: 'data.js' 
     }); 

     var NewView = Backbone.View.extend({ 
      el: '#News', 
      template: _.template($("#NewsTemplate").html()), 

      render: function() { 
       $(this.el).html(this.template(this.model.toJSON())); 
       return this; 
      } 
     }); 


    </script> 


    <div id="News"></div> 


    <script id="NewsTemplate" type="text/template"> 
     <%= title %> 
    </script> 

</body> 

+0

Я не вижу массив. остальное выглядит правильно – WindowsMaker

+0

Файл data.js, который вызывается внутри коллекции, имеет массив json, содержащий названия, имена и т. д. Спасибо :) – user2391468

+0

Я не совсем уверен, какой ответ вы ищете. Я принял некоторые вещи и оставил ответ ниже. Если это не имеет смысла, ознакомьтесь с этим уроком: http://arturadib.com/hello-backbonejs/. Он показывает, как вы можете создать представление для своей коллекции и отдельные представления для каждой из моделей в коллекции. –

ответ

2

Если вы хотите, чтобы передать коллекцию в шаблон, вы можете сделать следующее:

1: Определить новую коллекцию в вашем представлении. Добавьте несколько моделей в свою коллекцию. Мы определим его как this.collection, и предположим, что к моменту его получения в коллекции есть несколько моделей.

2: Передайте объект в шаблон. Сделать объект «коллекции» в качестве ключа и JSON-роскопию коллекции (массив моделей) в качестве значения:

$(this.el).html(this.template({'collection': this.collection.toJSON()}));

3: Теперь в шаблоне, мы можем ссылаться на коллекцию с помощью <%= collection %>. Тем не менее, я думаю, что вы хотите перебирать коллекцию для рендеринга значений. В шаблоне HTML, вы можете создать цикл, используя подчеркивание _.each-х:

<ul> 
    <% _.each(collection, function(item) { %> 
     <li> <%= item.id %> : <%= item.title %> </li> 
    <% }); %> 
    </ul> 

Это будет печатать список ваших моделей в коллекции, предполагая, что ваши модели имеют id и атрибут name.

Другим, более «backbone-ish» способом сделать это было бы создание нового представления для каждой модели в коллекции, аналогично элементам todo в этом уроке: http://arturadib.com/hello-backbonejs/.

+0

Эй, спасибо за ответ. – user2391468

Смежные вопросы