Малко странно...
Имам колекцията:
class Store.Collections.Product extends Backbone.Collection
url: '/api/products'
model: Store.Models.Product
С изглед:
class Store.Views.Origin extends Backbone.View
initialize: ->
@collection = new Store.Collections.Product()
@collection.fetch()
@model.bind('change:formatted', @render, this);
@render()
events:
'change [name=origin]': 'setOrigin'
el: =>
@options.parent.$('.origin-input')[0]
template: JST["backbone/templates/shapes/product"]
render: ->
$this = $(this.el)
$this.html(@template(model: @model.toJSON(), errors: @model.errors))
console.log(@collection)
@collection.each(@appdenDropdown)
@delegateEvents()
this
appdenDropdown: (product) ->
console.log("append trigger")
#view = new Store.Views.Products(model: product)
#$('#history').append(view.render().el)
с шаблона:
<div id="history"></div>
Колекцията работи... на
console.log(@collection)
показва данните! въпреки това
@collection.each(@appdenDropdown)
Не прави нищо, не прави грешки или чрез нещо. Просто не прави нищо. Опитвам се да извлека данните от колекцията! Но няма да...
$this = ...
, когато ИМАШthis.$el
. Предлагам да прочетете документацията на backbone.js. - person jakee   schedule 19.07.2012asynchronous
и вие изобразявате своя изглед в метода за инициализация вероятно преди извличането да се върне, така че колекцията е празна. console.log еwtfsynchronous
, така че независимо регистрира колекцията като попълнена. Това, което трябва да направите, е да свържете метода за изобразяване към събитието за нулиране на колекцията, за да сте сигурни, че изгледът ще бъде изобразен и след като колекцията бъде попълнена - person jakee   schedule 19.07.2012