我有以下代码来实现 Observable Memory Store
var inventory = [
{name:"shoes", quantity:10, category:"sales"},
{name:"clothes", quantity:5, category:"sales"},
{name:"hats", quantity:2, category:"sales"},
{name:"shirts", quantity:20, category:"sales"}
];
var inventoryStore = new Memory({data:inventory, idProperty: "name"});
var observer = new Observable(inventoryStore);
results = observer.query({});
results.observe(function(item, removedIndex, insertedIndex) {
if(removedIndex > -1) {
console.log("removed");
}
if(insertedIndex > -1) {
console.log("added");
}
console.log("Listened");
}, true);
inventoryStore.put(someObject);
有趣的是,代码不会监听inventoryStore
. 我希望它observe()
在发生任何事情时调用方法,inventoryStore
但事实并非如此。相反,如果我将对象放入observer
notinventoryStore
然后它会听。
如果我更改如下代码
var inventoryStore = new Observable(Memory({data:inventory, idProperty: "name"}));
results = inventoryStore.query({});
inventoryStore.put(someObject);
然后它工作。令人沮丧的是,即使我遵循了文档中的确切代码,它也不起作用。
我必须使用第一个代码块(将对象放入inventoryStore
not in observer
)的原因是我的某些对象不能存储在 Observable Memory 中,而只能存储在 Memory 中。任何建议将被认真考虑 :)