2017-02-03 67 views
1

我有對象模型爲:如何從Backbone中的對象獲取元素?

var wo = new WordModel({ 
    "url": window.location.href, 
    "time": toDay(), 
    "w": w.trim() 
}); 

timelineCollection.add(wo); 

我試圖讓所有的元素在其中timelineCollectiontime04/02/2017。我嘗試這樣做:

var o = { 
    time: "04/02/2017" 
}; 

var filtered = timelineCollection.where(o); 
console.log(filtered); 

但它並不適合我

+0

這是無關的骨幹,除非這裏顯示的代碼是不是一個在你的應用程序。另外,這不是有效的JavaScript語法。它看起來像'obj'應該是一個數組,這是正確的嗎?你在用Underscore尋找答案嗎?或純JavaScript? –

+0

這是從控制檯console.log中的代碼 – Darama

+0

我使用Underscore – Darama

回答

1

骨幹的集合where function真的是你應該使用什麼這方面的工作。

// short syntax, every object becomes a Backbone.Model by default. 
 
var collection = new Backbone.Collection([{ 
 
    id: 0, 
 
    time: "04/02/2017", 
 
    }, { 
 
    id: 1, 
 
    time: "05/02/2017", 
 
    }, 
 
    // you can mix both plain objects and Model instances 
 
    new Backbone.Model({ 
 
    id: 2, 
 
    time: "04/07/2017", 
 
    }), new Backbone.Model({ 
 
    id: 3, 
 
    time: "04/02/2017", 
 
    }) 
 
]); 
 

 
// passing an existing model works too. 
 
var model = new Backbone.Model({ 
 
    id: 4, 
 
    time: "04/02/2017", 
 
}); 
 

 
collection.add(model); 
 

 
console.log(collection.where({ 
 
    time: "04/02/2017" 
 
}));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>

+0

似乎問題是我使用模型,並在添加到集合後首先填充模型 – Darama

+0

@Darama nope,我的答案只使用較短的語法。 –

+0

@Darama問題可能不會在你的問題中顯示,可能'toDay()'沒有返回你認爲的或你的'WordModel'不是'Backbone.Model'的子類。 –