我试图从我的ember应用程序发出api调用。
我有这样的网址格式:
xxx.xxx.xxx.xxx/movies?where={"title": { "contains" : "" }, "year": "", "active": { "!" : "false" }}
但我不知道如何将变量title,years等传递给适配器中的api调用。
我已经有这样的事情:
export default DS.ActiveModelAdapter.extend({
namespace: movies,
host: 'http:// xxx.xxx.xxx.xxx’,
buildURL: function(type, id, record){
console.log("Building URL: ", type);
var url = this._super(type, id, record);
console.log("Building URL: ", url);
return url;
}
});
我想我需要像findQuery这样的东西,但我不知道如何使用它。谁能解释一下?
答案 0 :(得分:0)
我不熟悉ActiveModelAdapter
或rails,但不是movies
复数形式的movie
,这是您的型号名称?在这种情况下,您不应该拥有名称空间movies
。名称空间是前缀,如果您在模型名称之前有/api/v1
。与http://<your_domain>/api/v1/<model_name>
一样。
EmberJS查询必须是键值对。并且网址不支持该结构(他们需要进行URL编码)。但是,您可以在进行查询之前将对象转换为JSON:
var whereQuery = {"title": { "contains" : "" }, "year": "", "active": { "!" : "false" }}
this.store.query('movie', {where: JSON.stringify(whereQuery}))
所以你的适配器可能就像这样留空:
export default DS.ActiveModelAdapter.extend({});