2014-01-21 3 views
0

Мне нужно отфильтровать Backgrid подкатегорией модели. У меня есть следующий JSON строка с сервера:Отфильтровать по подполе моделей

[{"iduser": 
    {"iduser":1224,"apellido":"Agostini","nombre":"Juan Ignacio","dni":47121281} 
    }, 
    {"iduser": 
    {"iduser":1225,"apellido":"Alvarez","nombre":"Pedro","dni":4712312} 
    }] 

Итак, я показать пользователь ПолноеИмя со следующим обычаем StringCell визуализации:

{name: 'fullname', label: 'Nombre completo', cell: Backgrid.StringCell.extend({ 
     render: function(){ 
      var user = this.model.get('iduser'); 
      var fullname = user.apellido + ", " + user.nombre; 
      this.$el.html(fullname); 
      return this; 
     } 
}), editable: false, sortable: true} 

Теперь я пытаюсь установить фильтр по «FULLNAME», но не работает. Есть идеи ?

ответ

-1

Поскольку по умолчанию каждое имя столбца Backgrid соответствует фактическому имени атрибута модели, сортировка будет сортировать значения этого атрибута в каждой модели. В вашем случае у вас нет атрибута Model с именем «fullname», но вы можете приблизиться к этому, указав атрибут столбца sortValue.

var columns = [{ 
    name: "fullname", 
    label: "Nombre completo", 
    cell: MyStringCell, 
    editable: false, 
    sortable: true, 
    sortValue: function (model, colName) { 
    var user = model.get("iduser"); 
    return user.apellido + ', ' + user.nombre; 
    } 
}] 
+0

sortValue используется для сортировки. При фильтрации вы имеете в виду поиск с расширением фильтра? –

+0

Почему вы отвечаете «sortValue», если мне нужен «фильтр» ??? ты в порядке ? – ramiromd