我有烬数据的问题。 例如,我在http创建了一个项目://本地主机/〜我/测试
在项目中,我已经创建了一个商店,一个模型,如下所示:
... init stuff here ...
var attr = DS.attr;
App.Person = DS.Model.extend({
firstName: attr('string'),
lastName: attr('string'),
});
App.Store = DS.Store.extend({
revision: 11,
adapter: DS.RESTAdapter,
});
现在,当我搜索(在我的路线某处)一个人是这样
var person = App.Person.find(params);
在HTTP://本地主机/人POST_ID = 10叫什么名字?。 这其中不存在,当然。 我会一直期待类似于http://本地主机/〜我/测试/人POST_ID = 10? 更妙的是http://localhost/~me/test/persons.php POST_ID = 10我怎样才能改变这个网址?
这是因为灰烬数据Beta 3中的
为了照顾前缀,你可以使用namespace
的属性DS.RESTAdapter
。 为了照顾后缀的,你要自定义buildURL
的方法DS.RESTAdapter
,使用_super()
来获得原始功能和修改。 它应该是这个样子:
App.ApplicationAdapter = DS.RESTAdapter.extend({
namespace: '~me/test',
buildURL: function() {
var normalURL = this._super.apply(this, arguments);
return normalURL + '.php';
}
});
MilkyWayJoe是正确的,在您的适配器您可以定义命名空间。
App.Adapter = DS.RESTAdapter.extend({
namespace: '~/me/test'
});
这将工作太:
App.Person = DS.Model.extend({
url: '~me/test/persons',
firstName: attr('string'),
lastName: attr('string'),
});
或者,如果你想使用一个命名空间和.PHP路径:
App.Adapter = DS.RESTAdapter.extend({
namespace: '~/me/test',
plurals: {
"persons.php": "persons.php",
}
});
App.Person = DS.Model.extend({
url: 'persons.php',
firstName: attr('string'),
lastName: attr('string'),
});
该复数位是确保数据恩贝尔不添加一个“s”,如person.phps