我正在构建一个小型库应用程序,使其具有编程电子书的可视目录。 现在,我在我的BooksViewModel.js文件中添加了一些电子书信息到ko.observableArray中。 稍后,我将实现一个NodeJS应用程序,其中包含保存在MongooseDB中的所有数据并从那里访问它们,但到现在为止,我只是直接从Knockout.js中进行实验。数据过滤的最佳方法
默认情况下,我的图书馆显示我添加的所有书籍,无组织,所以我期待按语言实现“类别”。每个书对象都包含一个语言属性。 我想过滤语言显示的书籍,但我有点困惑如何才能做到这一点的最佳方式。
数组上的书没有组织起来,它们全都放在那里..有些谈到javascript,其他C等等。 起初我想过为每种语言创建一个单独的数组,然后在ViewModel中实现一个方法来选择您所请求的语言的相应数组。
后来,我就implementa的NodeJS API,通过语言,让他们,让说:
GET /languages/C // will get a json corresponding all the books that talks about C
视图模型可能包含一个方法:
self.findByLanguage = function(lang) {
self.books = // GET /languages/:lang
};
但是,这将每次查询数据库。我想最好先加载json的全部书籍,将它们全部保存到客户端的数组中,然后过滤它们。这样只有一个请求会被提出。 我可以有一个包含所有书籍的全局数组,然后用ko.utils.ArrayFilter实现过滤器。
你们认为最好的方法是什么?也许有更好的方法。
在此先感谢!
您不应将所有书籍发送给他们未请求的客户端。这将是很多可能永远不会使用的数据。做过滤服务器端。 –