Ember JS过滤器模型,其中标题包含关键字



我正在尝试在图书馆中搜索一本书。现在我有搜索工作,如果标题和关键字匹配,它会返回结果,但是我怎么能使它这样,如果标题包含关键字,它会返回结果。

例如,如果用户搜索"历险记",他们将得到"哈克贝利·费恩历险记"one_answers"汤姆·索亚历险记"

这是我现在的路由器,它会找到一个完全匹配的:

Books.BooksSearchRoute = Ember.Route.extend({
    model: function (params) {
        return this.store.filter('book', function (book) {
            return book.get('titleSlug') == params.keyword;
        })
    },
    renderTemplate: function (controller) {
        this.render('books/index', { controller: controller });
    }
});

我尝试使用javascript indexOf函数这样做,但它总是返回不匹配

Books.BooksSearchRoute = Ember.Route.extend({
    model: function (params) {
        return this.store.filter('book', function (book) {
            return book.get('titleSlug').indexOf(params.keyword) > 0;
        })
    },
    renderTemplate: function (controller) {
        this.render('books/index', { controller: controller });
    }
});

我认为您想要> -1,因为0仍然是有效匹配。

例如:

"foo bar".indexOf("foo"); // returns 0
"foo bar".indexOf("lorem"); // returns -1

最新更新