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