簡體   English   中英

帶有OR條件的骨干集合where子句

[英]Backbone collection where clause with OR condition

我已經搜索了這段時間了很長時間但是無法找到一個方法來使用where子句或條件。 例如,如果我有一個集合Cars ,我嘗試執行以下操作:

Cars.where({
            model: 1998,
            color: 'Black',
            make: 'Honda' 
          })

那么上面要做的就是搜索一款carmodel1998colorBlackmakeHonda

但我需要一種方法來獲得具有三種條件中的任何一種的cars

Cars.filter(function(car) {
    return car.get("model") === 1998 ||
        car.get("color") === "Black" ||
        car.get("make") === "Honda";
});

我知道這是一個老帖子,但也許這對某些人有用。

我有類似的問題,但有點簡單,這就是我解決它的方法

var ids=[1,2,3,4];
var plans=this.collection.filter(function(plan){
            var rt=false;
            for(var i=0;i<this.whereOR.length;i++){
                rt=rt||plan.get('id')==this.whereOR[i];
            }
            return rt;
        },{whereOR:ids});

我認為這可以用來解決這樣提出的問題:

var search={model: 1998,color: 'Black',make: 'Honda'};
Cars.filter(function(car){
                var rt=false;

                for(key in this.whereOR) {
                    rt=rt||car.get(key)==this.whereOR[key];
                }
                return rt;
            },{whereOR:search});)

希望這有幫助的人!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM