Я установил метод «компаратор» в своей коллекции, чтобы я мог сортировать список в коллекции. , но это не влияет на просмотр.Макетная коллекция и сортировка просмотров
'/ апи/примечание/GetList', он возвращает (и это называется, когда коллекция инициализироваться зрения)
[{"id":22,"name":"Test2","isPublic":1},{"id":11,"name":"Test1","isPublic":1},{"id":33,"name":"Test3","isPublic":1}]
Это моя коллекция,
define [
'models/Note'
],
(Note) ->
class NoteCollection extends Backbone.Collection
model : Note
url : '/api/note/getList'
initialize:() =>
_.bindAll @
@.on 'sort', @onSort
comparator : (item) ->
id = item.get 'id'
return id * -1
onSort:() =>
@.each (model) =>
console.log model.get 'id'
onSort метод печатает ,
11
22
33
Правильно, но на экране отображается
22
11
33
Это моя точка зрения,
define [
'hbs!./noteCollection_tpl'
'./noteItemView'
'collections/NoteCollection'
],
(noteCollection_tpl, noteItemView, NoteCollection) ->
class NoteCollectionView extends Backbone.Marionette.CompositeView
template : noteCollection_tpl
itemView : noteItemView
itemViewContainer : '.noteListContainer'
className : 'noteWrap'
initialize : (options) ->
@collection = new NoteCollection()
ли я повторно вынести мнение? если да, то как я могу поймать (что) событие, когда после загрузки URL и весь список будет в коллекцию?
пожалуйста, советую, что я делаю неправильно.
да, вам нужно будет повторно просмотреть представление после сортировки коллекции. извините, я плохо разбираюсь в coffeescript, но в вашем представлении вы можете: this.collection.on ('sort reset', this.render, this); это захватывает события, когда коллекция «перезагружается» (например, после выполнения fetch()) и при сортировке коллекции. –
Я вижу. Спасибо. (BTW, это раздражает работу, чтобы перехватить это событие ..) –
Да, магистраль не имеет привязки данных в представлениях по умолчанию. BTW, если вы используете backbonejs> 1.0. с использованием listenTo лучше. например. в инициализации вашей коллекции: this.listenTo (this.collection, "reset reset", this.render); –