2014-05-23 60 views
0

在我的項目,我問我的服務器ID爲1,2,3的記錄是這樣的(無空格):FindMany覆蓋不起作用。 Ember公司數據

url?sites=id1 %2C id2 %2C id3 

它將返回記錄此ID的JSON文件。

因此,對於這種情況,我認爲如果我設法使用findMany並使RestAdapter以這種方式調用服務器,我就可以緩存了。

我已經找到了下,但它不工作,它繼續呼籲:

GET topologymins/1,2 

適配器:

App.ApplicationAdapter = DS.RESTAdapter.extend({ 

    findMany: function(store, type, ids) { 
    Ember.Logger.log("INSIDE THE findMany"); // NOT SHOWED 
    var url = type.url; 
    url = url.fmt(ids.join(',')); 

    jQuery.getJSON(url, function(data) { 
     // data is an Array of Hashes in the same order as the original 
     // Array of IDs. If your server returns a root, simply do something 
     // like: 
     // store.loadMany(type, ids, data.people) 
     //store.loadMany(type, ids, data); 
    }); 
} 
}); 

App.Topologymin.reopenClass({ 
    url: '/something?ids=%@' 
}); 

我的電話:

this.store.find('topologymin',[1, 2]); 

回答

0

這不只是因爲你錯過了回報?

噢...對不起,你的findMany寫得不對,我沒有htink ......它缺少一個回報...但實際上並不是什麼問題 - 它甚至沒有調用findMany因爲商店。 find()不能傳遞一個ID數組...你想要這個,我想:store.find('topologymin',{ids:[1,2]});

但是,我想你會遇到另一個問題,因爲findMany應該有一個返回值...如果你看看默認實現,你會明白我的意思......它需要返回一個承諾,並且你沒有任何回報。

+0

哪裏?我不這麼認爲 – Pedro4441

+0

噢...對不起,你的findMany寫得不正確,我不知道...它錯過了一個回報......但實際上並不是什麼問題 - 它甚至不會調用findMany,因爲商店.find()不能傳遞一個ID數組...你想要這個,我想:store.find('topologymin',{ids:[1,2]}); –

+0

這將調用findQuery函數,該函數永遠不會兌現記錄。無論如何,我認爲現在它不能做 – Pedro4441