Скелет Json посмотреть шаблон

0

В данный момент я просто пытаюсь окунуться в позвоночник.

Так что у меня есть модель, загрузите файл 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
    я не вижу массив. остальное выглядит правильно
  • 0
    Файл data.js, который вызывается внутри коллекции, содержит массив json, содержащий заголовки, имена и т. Д. Спасибо :)
Показать ещё 1 комментарий
Теги:
underscore.js
backbone.js

1 ответ

2
Лучший ответ

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

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

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

$(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.

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

  • 0
    Эй, спасибо за ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню