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

时间:2014-03-11 23:11:45

标签: ember.js

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

例如,如果用户搜索“The Adventures”,他们将同时获得“Huckleberry Finn历险记”和“Tom Sawyer历险记”

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

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 :(得分:1)

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

例如:

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