对集合的操作(排序,限制,搜索等)

|| 通常,当我使用jquery来构建一个简单的应用程序来显示数据时,我会根据某些操作简单地更改一些全局变量,然后在准备从服务器中检索数据时,将这些var传递给服务器。 在ribs.js中执行此操作的好方法是什么?我的观点可以处理吗?到目前为止,我有以下观点:
var ListView = Backbone.View.extend({
    initialize: function() {
        this.render();
    },  

    render: function() {

    template = _.template(\"\\
    <table>\\
    <% _(collection).each(function(model){%>\\
    <tr><td><%=model.name%></td><td><%=model.email%></td></tr>\\
    <%}); %>\\
    </table>\\
    \");

        var context = {collection: this.collection.toJSON()};
        $(this.el).html(template(context));
        $(\'#app\').html(this.el);
    }
});
基本上在控制器中,我创建一个
users
集合,然后使用
users.fetch()
,然后将
users
集合传递给新的
ListView
对象。我知道初始化函数会自动呈现(这是一种不好的做法吗?)我知道ribs.js中有事件,并且我猜想这就是结束的地方。如何处理按某些字段排序或在某些字段中搜索某些文本或选择返回多少结果(即每页10个)等?     
已邀请:
由于ribs.js使用RESTfull Api,因此并非易事。您将必须重写Backbone.sync READ方法以构造您自己的URL调用:如何重写Backbone.sync? 这也可能对您有帮助:REST API最佳实践:在哪里放置参数? 然后,当您获得所需的数据时,我将进行渲染。初始化将在var listview = new ListView()上调用,并且如果您没有引导数据-可能什么也不会发生。     
您可以像这样使用设置比较器: http://documentcloud.github.com/backbone/#Collection-comparator
var Chapter  = Backbone.Model;
var chapters = new Backbone.Collection;

chapters.comparator = function(chapter) {
  return chapter.get(\"page\");
};

chapters.add(new Chapter({page: 9, title: \"The End\"}));
chapters.add(new Chapter({page: 5, title: \"The Middle\"}));
chapters.add(new Chapter({page: 1, title: \"The Beginning\"}));

alert(chapters.pluck(\'title\'));
您可以使用Collection.sort() http://documentcloud.github.com/backbone/#Collection-sort 或者您可以使用Underscore方法并手动重置集合 http://documentcloud.github.com/backbone/#Collection-Underscore-Methods http://documentcloud.github.com/backbone/#Collection-reset     

要回复问题请先登录注册